给出一个具有多个类的对象图,如何获得一个修饰的层次结构实例,其中每个复杂类型也都得到修饰,而无需为每种类型创建具体的映射?例如,如果我有以下内容:
public class Root {
public Child FirstBorn {get;set;}
public Child SecondBorn {get;set;}
}
public class Child {
public List<Possession> Possessions {get;set;}
}
public class Possession {
}
我想将所有复杂类型装饰为文档...
public class AsDocument<T>
{
public AsDocument(T value)
{
Value = value;
Id = ObjectId.GenerateNewId();
Origin = value.GetType().FullName;
}
public String Origin { get; set; }
public T Value { get; set; }
public ObjectId Id { get; set; }
}
可以将根类装饰为:
var decoratedRoot = new AsDocument<Root>(someRoot);
是否有一种方法可以装饰每种复杂类型?
因此...如果装饰根以这种方式创建... FirstBorn和SecondBorn的类型为AsDocument和AsDocument
答案 0 :(得分:0)
如果我对您的理解正确,那么您需要这样的东西:
public class Root {
public AsDocument<Child> FirstBorn {get;set;}
public AsDocument<Child> SecondBorn {get;set;}
}
public class Child {
public List<AsDocument<Possession>> Possessions {get;set;}
}
public class Possession {
}