我有一个可以实现 ICommand 但可以实现通用接口的命令对象IUpdateAggregateCommand<TAggregate>
。
public interface IUpdateAggregateCommand<TAggregate> : ICommand where TAggregate : IAggregate
{
TAggregate Entity { get; set; }
}
我正在这样测试:
var isIUpdateAggregateCommand = command.GetType().GetInterfaces().Any(x =>
x.IsGenericType &&
x.GetGenericTypeDefinition() == typeof(IUpdateAggregateCommand<>));
如果它确实实现了接口,我如何将其转换为特定类型,例如如果它实现IUpdateAggregateCommand<Person>
了我如何将命令转换为IUpdateAggregateCommand<Person>
?
我需要能够设置实体的值
更新
我在一个装饰器里面,我不知道我需要将它转换成的聚合类型。所以我需要弄清楚它是什么类型,然后将其转换为