実行時に DTO オブジェクトを逆シリアル化しています。そして、以下のコードを使用して、名前空間と型名を指定してオブジェクトをインスタンス化しました
public class SimpleDtoSpawner : DtoSpawner{
private readonly Assembly assembly;
private readonly string nameSpace;
public SimpleDtoSpawner(){
assembly = Assembly.GetAssembly(typeof (GenericDTO));
//NOTE: the type 'GenericDTO' is located in the Api namespace
nameSpace = typeof (GenericDTO).Namespace ;
}
public GenericDTO New(string type){
return Activator.CreateInstance(
assembly.FullName,
string.Format("{0}.{1}", nameSpace, type)
).Unwrap() as GenericDTO;
}
}
すべてのコマンドとイベントがApi名前空間にあるとき、この実装はうまくいきました。しかし、それらをApi.CommandとApi.Event
の
2 つの名前空間に分けた後、正確な名前空間参照なしでそれらをインスタンス化する必要があります。