我有一个具有ICommand
属性的泛型类。这是一个复合对象,用作具有ICommand
属性的子对象。
我正在搜索一个系统,在运行时定义用于此类的接口和子对象的命令属性,这些属性必须像泛型的ICommand
属性一样被“使用”。
最后有这样的事情:
public TestDynamic<T>
{
public ICommand ChildCommand;
public T CompositeChild;
...
}
public interface ITestOne{
ICommand DoSomethin{get;set;}
}
public interface ITestTwo{
ICommand DoSomethingMore{get;set;}
}
ITestOne MyObj1=...
ITestTwo MyObj2=...
TestDynamic<ITestOne> TD1=...
TD1.DynamicRegistration((i)=>i.DoSomething);
TD1.ChildCommand.Execute();//DoSomething execution
TestDynamic<ITestTwo> TD2=...
TD2.CompositeChild=MyObj2;
TD2.DynamicRegistration((i)=>i.DoSomethingMore);
TD2.ChildCommand.Execute();//DoSomethingMore execution
//Those are done in a different moment. Where i can't simply set the property
TD1.CompositeChild=MyObj1;
TD1.CompositeChild=MyObj1;
实际上使用Action<T,ICommand>
我定义了一个返回子类的“正确”ICommand
的委托。
在你的意见中,有什么可能是更好的方法来实现这一点?
答案 0 :(得分:0)