Event 클래스 멤버를 직렬화하지 않도록해야합니다. 이벤트가 Serializable로 표시되지 않은 객체에 의해 처리 될 때 직렬화가 실패하기 때문입니다.바이너리 직렬화를위한 이벤트 클래스 멤버를 무시하는 방법?
Event 클래스 멤버에서 NonSerialized 특성을 사용해 보았지만 컴파일에 실패했습니다. 이 코드 행 : 이벤트 멤버를 직렬화 방지하는 또 다른 방법은
Attribute 'NonSerializedAttribute' cannot be applied to 'PropertyValueChanged' because the attribute is not valid on this declaration type.
Public Event PropertyValueChanged() ' compiles but needs the extra handling described below
있습니까 :
<NonSerialized()> Public Event PropertyValueChanged()
는 다음과 같은 오류가 발생합니다?
이벤트가 처리되지 않는 경우 문제가되지 않으므로 일련 화하기 전에 개체를 복제하고 이벤트를 무시하여 문제를 해결할 수 있습니다. 더 좋은 방법이 있는지 궁금합니다.
감사합니다.
@Paul - "여전히 실패 함"; 당신이하고 싶은 것이 정확히 무엇입니까? serializer를 변경하는 것이 좋은 옵션이 될지 궁금해합니다. (소리가 나지 않고 부작용도 있습니다.) 물론 당신까지,하지만이 영역에 대해 * 시간 동안 이야기 할 수 있습니다. ... –
@Marc : 다음 사항을 알려 주셔서 감사합니다. 직렬화가 불가능한 객체에 이벤트가 연결될 때 직렬화가 실패하므로 클래스를 직렬화 할 때 이벤트를 무시하면됩니다. NonSerialized 속성은 의미가 있지만 VB에서 C#과 같은 방식으로 작동하지 않는 것 같습니다 ... 공용 필드 속성에 대한 배킹 필드를 장식 할 때도 컴파일러 오류가 발생합니다. "serializer 변경"이란 무엇을 의미합니까? 사용자 지정 직렬화 또는 다른 타사 라이브러리를 의미합니까? –