私はCastle.DynamicProxy2を使用しています、そのように私は私のプロキシをインスタンス化しています:IEntityStatusのCastle.DynamicProxy2と実行時のプロパティを追加する
private static T GenerateProxy()
{
ArrayList addtlInterfaces = new ArrayList();
addtlInterfaces.Add(typeof (INotifyPropertyChanged));
addtlInterfaces.Add(typeof (EntityStatus));
object entityProxy = ProxyGenerator.CreateClassProxy(typeof(T),
addtlInterfaces.ToArray(typeof(Type)) as Type[],
ProxyGenerationOptions.Default,
new IInterceptor[] { new LazyInterceptor() });
return (T)entityProxy;
}
私のインターフェイスは、次のようになります。
public interface IEntityStatus
{
bool IsDirty
{ get; set;}
}
実行時にそのプロパティを使用できるようにする必要があります。そのため、DTOにプロパティが変更されたイベントがあると、DTOをDTOに設定できます。しかし、それはインターフェイスであり、明示的な実装がないので、私はこれをどうやって行うのか迷っています。 getメソッドとsetメソッドのデリゲートを作成することは避けたいオプションです。それで、私が達成しようとしていることを達成する別の方法がありますか?
私はすべてのアクティブなDTOのコレクションを設定できるとわかりました。そのプロパティがDTOのいずれかでイベントを発生させたとき、その特定のDTOが汚れていることを示すコレクションを更新できましたが、純粋な構文容易性のためにプロキシされたDTOの一部となる情報。
返信を楽しみにしています!