본문 바로가기
개발/C#

[C#] securitypermission(securityaction.linkdemand flags = securitypermissionflag.unmanagedcode)

by 언제나초심. 2016. 7. 28.
반응형
예전에 만들었던 프로젝트를 비주얼 스튜디오 2015 에서 열었다. 

이런저런 작업을 해주고 있는 와중에 보니 

'securitypermission(securityaction.linkdemand flags = securitypermissionflag.unmanagedcode)' 라는 오류 문구가 떴다. 


설명을 찾아보자니, 언제부터인지는 모르겠지만(알 필요도 없고)




[SerializableAttribute]

[ComVisibleAttribute(true)]

public sealed class SecurityPermission : CodeAccessPermission, 

IUnrestrictedPermission


와 같은 형태로, 어느정도 힌트를 주어야 되게끔 바뀐 듯 싶다. 메서드 명 위에 [] 으로 뭔가를 적어놓는 것은 자바 스프링에서 자주 봤던 것. 



일단 참고 링크는 다음과 같다.

[MSDN - SecurityPermissionFlag 열거형] https://msdn.microsoft.com/ko-kr/library/system.security.permissions.securitypermissionflag(v=vs.110).aspx


[MSDN - SecurityPermission 클래스]

https://msdn.microsoft.com/ko-kr/library/system.security.permissions.securitypermission(v=vs.110).aspx


[MSDN - Control.ProcessCmdKey 메서드 (Message, Keys)]

https://msdn.microsoft.com/ko-kr/library/system.windows.forms.control.processcmdkey(v=vs.110).aspx




나의 경우 문제가 된 부분은, ProcessCmdKey 메소드 와 관련된 부분이었는데, 


[SecurityPermissionAttribute(SecurityAction.LinkDemand, Flags = SecurityPermissionFlag.UnmanagedCode)]

        protected override bool ProcessCmdKey(ref Message msg, Keys keyData)


와 같이 처리 하였더니 해결이 되었다. 


상단에 using System.Security.Permissions; 와 같은 부분도 필요한 듯 하다. 






반응형