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>
ですか?
Entity の値を設定できるようにする必要があります
アップデート
私はデコレータの中にいて、それをキャストする必要がある集約のタイプがわかりません。したがって、それがどのタイプであるかを把握し、それにキャストする必要があります