我正在使用CreateClassProxyWithTarget
方法裝飾現有對象。但是,構造函數和初始化代碼被調用兩次。我已經有一個「構造」實例(目標)。我明白爲什麼發生這種情況,但有沒有辦法避免它,除了使用空的構造函數?如何避免動態代理:: CreateClassProxyWithTarget代理的雙重構造?
編輯:下面是一些代碼:
首先創建代理:現在
public class KatalogBase : AuditableBaseEntity
{
public KatalogBase()
{
Values = new HashedSet<Values>();
Attributes = new HashedSet<Attributes>();
}
...
}
如果我:
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;
}
我用這個例子與下面的類的對象請致電BindingFactory.Create(someKatalogBaseObject);
Values
和Attributes
屬性再次被初始化。
你能有一些代碼,顯示你所遇到的問題詳細點嗎? –
@KrzysztofKoźmic我用一些代碼更新了我的問題,它顯示了問題。 – Belvasis