여러 가지 예외에서 여러 클래스를 파생 시켰습니다. 이제 vs는이 질문의 제목 에서처럼 경고를줍니다.예외 클래스에서 파생 경고 : CA2237 : SerializableAttribute를 사용하여 ISerializable 유형을 표시하십시오.
1.이 규칙을 무시한 것의 의미를 설명 할 수 있습니까?
here에서 규칙을 설명 할 수 있습니까? "응용 프로그램 도메인에서 올바르게 작동하려면 직렬화 가능해야하므로 예외 클래스에 대한 경고를 표시하지 마십시오."
감사합니다.
P. 글쎄, 나 스스로 대답을 얻었 어. 실제로 예외를 직렬화 가능으로 표시해야합니다. 동일한 AppDomain에서이 특성 없이는 제대로 작동합니다. 그러나 당신이 다른 도메인에서 그것을 잡으려고하면, 그것은 응용 프로그램 경계를 가로 질러 얻을 serialize해야합니다. 이것이 제가 찾은 주된 이유입니다.
AppDomain 경계를 가지고 독서하고 놀고 난 후에 .NET은 실제로 이러한 클래스에 [Serializable]이 없다는 자체 예외를 제공하기 시작했습니다. appDomain.CreateInstance (..., classNameForThisDomain, ...)에 대한 흥미로운 점 중 하나는이 클래스가 MarshalByRefObject에서 파생 될 때만 실행중인 앱 도메인과 별개의 app 도메인에 classNameForThisDomain을 만들고 실행한다는 것입니다. 하지만 그렇지 않으면 classNameForThisDomain이 동일한 appdomain에로드됩니다! – Nickolodeon