14
다음 클래스를 BinaryFormatter
으로 직렬화하면 Roar
이벤트를 구독하는 개체도 serialize됩니다. 해당 개체에 대한 참조가 EventHandler 대리자에 의해 유지되므로 해당 개체를 serialize합니다.오브젝트를 직렬화 할 때 이벤트 등록자를 무시하려면 어떻게합니까?
[Serializable]
public class Lion
{
public event EventHandler Roar;
public string Name { get; set; }
public float Fluffiness { get; set; }
public Lion(string name, float fluffiness)
{
Name = name;
Fluffiness = fluffiness;
}
public void Poke()
{
Roar(); // Could be null, etc..
}
}
어떻게 이벤트 가입자가 사자로 시작하는 객체 그래프의 한 부분으로 직렬화 중지 것?
[NonSerializable]
속성을 event
에 넣는 것은 컴파일되지 않습니다.
참고 : 사이트에 정보가있는 것이 유용 할 것 같아서 제 질문에 대답하고 있습니다.
자주 묻는 질문 : 자신의 질문에 대해 질문하고 대답하는 것은 완벽하지만 괜찮은 질문인데, 질문의 형태로 표현하십시오.
감사합니다. 그런데 왜 그런가요? –
System.NonSerializedAttribute에 제약 조건이 있기 때문에 그것은 필드에 적용 할 수 있습니다! – Grubl3r