테스트 용 .NET 4 버전의 테스트를 만들 수 있습니까?은 보스의 무고한 질문이었습니다. 내가 .NET 4 우리 윈폼 응용 프로그램에서 우리의 27 개 프로젝트를 변경하고 재 컴파일 후 응용 프로그램을 실행할 때System.TypeLoadException 처리되지 않음/상속 보안 규칙 위반 구성원을 무시하는 동안
는하지만, 나는
System.TypeLoadException가 처리되지 않은
메시지 = 상속했다 얻을 재정의하는 동안 보안 규칙 위반 : 'MyCustomORM.GetObjectData (System.Runtime.Serialization.SerializationInfo, System.Runtime.Serialization.StreamingContext)'. 재정의 메서드의 보안 액세스 가능성이 재정의 할 메서드의 보안 액세스 가능성과 일치해야합니다.
흠 .....
MyCustomORM
는 실제로 ISerializable
인터페이스를 구현하므로이 방법
[Serializable]
public abstract class MyCustomORM: IMyCustomORM, ISerializable, ICloneable, ISecurable
{
public virtual void GetObjectData(SerializationInfo info, StreamingContext context)
{
// do stuff here.......
}
}
을 가지고 있으며, 나는 또한 GetObjectData
를 오버라이드 (override) Exception
에서 파생 된 두 개의 클래스가 않습니다 방법.
하지만 무엇이 잘못 될 수 있습니까 ??
예외가 첫 줄 앞에도 발생 .....
[assembly: SecurityPermission(SecurityAction.RequestMinimum, Execution = true)]
namespace MyApplication.ORM
{
[Serializable]
public abstract class MyCustomORM: IMyCustomORM, ISerializable, ICloneable, ISecurable
{
[SecurityPermission(SecurityAction.LinkDemand, Flags = SecurityPermissionFlag.SerializationFormatter)]
public virtual void GetObjectData(SerializationInfo info, StreamingContext context)
{
// do stuff here.......
}
}
}
을하지만 아무 것도 변경하지 않습니다 그래서 내가 그랬어 - 주위에 인터넷 검색을 나는 방법 및 네임 스페이스에 충실하기 위해 몇 가지 추가 속성을 발견 내 static Main()
메서드의 코드에 도달했습니다 ....
저는 프로젝트를 샅샅이 뒤지고 이전 .NET 1.1 라이브러리에 대한 참조를 제거했습니다 (예, 앱은 오래되었습니다 .....). NET 4 대응 제품 (주로 log4net)을 사용합니다. 아직도 운이 ....
어떤 아이디어 ??
이 동작을 제어하는 '플래그'가 있습니다. 그래도 어디 있는지 기억할 수 없습니다. 또한 오류는'virtual'을 사용할 수 없음을 나타냅니다. – leppie
또한,'GetObjectData'는 추상 클래스에서 결코 의미를 갖지 않습니다. 추상적 인 유형의 인스턴스로 다시 인스턴스화할 수 없기 때문입니다. – leppie