2014-03-25 3 views
1

필드를 소개해야합니다.이 값은 aspect로 장식 된 클래스의 다른 필드와 직렬화되어야합니다. PostSharp. serializable 속성을 소개하는 방법

내 클래스 :

[Serializable] 
[MyAspect(1)] 
public MyClass 
{ 
    public int IntField = 0; 
} 

이 내 측면이다 :

[Serializable] 
public class MyAspect: InstanceLevelAspect 
{ 
    private int _aspectField; 

    public MyAspect(int aspectField) 
    { 
     _aspectField = aspectField; 
    } 

    [IntroduceMember] 
    public int IntroducedProperty { get; set; } 
} 

는 디 컴파일 된 DLL 후, 나는 IntroducedProperty가 MyClass의 정의에 추가 된 것을 볼 수 있지만 위임에 대한 모든 호출 MyAspect.IntroducedProperty를 사용합니다.

따라서 직렬화는 IntroducedProperty에 해당하는 MyClass의 필드를 보지 못합니다.

또한 PostSharp는 NonSerializable 특성으로 표시된 MyClass에서 MyAspect 형식의 필드를 생성합니다.

필드를 도입하는 몇 가지 방법이 있습니까? 직렬화에 참여할 수 있습니까?

+0

모든 시리얼을 MyClass의의를 ISerializable 인터페이스를 구현, 또는 측면에 의해 해당 인터페이스를 도입 할 필요가있다. –

+0

필드에서 작동하는 BinaryFormatter를 사용하고 있습니다. – Eugene

답변

관련 문제