CreateClassProxyWithTarget
メソッドを使用して既存のオブジェクトを装飾しています。ただし、コンストラクター、つまり初期化コードが 2 回呼び出されています。私はすでに「構築された」インスタンス(ターゲット)を持っています。なぜこれが起こるのか理解していますが、空のコンストラクターを使用する以外に回避する方法はありますか?
編集:ここにいくつかのコードがあります:
最初にプロキシを作成します:
public static T Create<T>(T i_pEntity) where T : class
{
object pResult = m_pGenerator.CreateClassProxyWithTarget(typeof(T),
new[]
{
typeof(IEditableObject),
typeof(INotifyPropertyChanged) ,
typeof(IMarkerInterface),
typeof(IDataErrorInfo)
},
i_pEntity,
ProxyGenerationOptions.Default,
new BindingEntityInterceptor<T>(i_pEntity));
return (T)pResult;
}
たとえば、次のクラスのオブジェクトでこれを使用します。
public class KatalogBase : AuditableBaseEntity
{
public KatalogBase()
{
Values = new HashedSet<Values>();
Attributes = new HashedSet<Attributes>();
}
...
}
私が今呼び出すと、BindingFactory.Create(someKatalogBaseObject);
プロパティ
は再び初期化されます。Values
Attributes