私は2つのインタフェースIAとIBを持っています。インターフェイスを持つオブジェクトをプロパティとしてシリアル化するにはどうすればよいですか?
public interface IA
{
IB InterfaceB { get; set; }
}
public interface IB
{
IA InterfaceA { get; set; }
void SetIA(IA value);
}
各インターフェイスは、他のインターフェイスを参照します。
ClassAを以下のようにシリアル化しようとしています。
[Serializable]
public class ClassA : IA
{
public IB InterfaceB { get; set; }
public ClassA()
{
// Call outside function to get Interface B
IB interfaceB = Program.GetInsanceForIB();
// Set IB to have A
interfaceB.SetIA(this);
}
}
[Serializable]
public class ClassB : IB
{
public IA InterfaceA { get; set; }
public void SetIA(IA value)
{
this.InterfaceA = value as ClassA;
}
}
2つのプロパティがインターフェイスなので、シリアル化しようとするとエラーが発生します。私はプロパティをシリアル化したい。
どうすればこの問題を回避できますか?
私は、それぞれのインタフェースで参照を別のものにする必要があります。クラスを前後にシリアル化できるようにする必要があります。
私はバグを修正し、前後に行くことができました。 –
うん。コピー・ペーストのエラーになるのは簡単です。これはうれしかったです。 –