【发布时间】:2012-02-23 10:48:42
【问题描述】:
我有一个不知道怎么问的问题。看;我有一个这样的实体:
public class Person{
public int Id {get; set;}
public string FirstName {get; set;}
public string LastName {get; set;}
}
还有一个与实体具有相同属性的视图模型:
public class PersonModel{
public int Id {get; set;}
public string FirstName {get; set;}
public string LastName {get; set;}
}
我的问题是:如何创建一个自动转换器来从其中一个读取属性,然后创建一个新的并从第一个开始写入属性?见:
// DAL
public class Repository{
public void Save(Person person){
// saving a person entity
}
}
// BLL
public class Service{
public void CreatePerson(PersonModel model){
var person = new Person{
Id = model.Id,
FirstName = model.FirstName,
LastName = model.LastName
};
new Repository().Save(person);
}
}
当我想将它们从服务传递到存储库时,我必须重复此代码以将所有视图模型转换为实体。我知道explicit 和implicit,我不想使用它们。我的意思是我正在寻找一种通过反射和泛型自动绑定它们的方法。例如这样的:
public class Binder{
public TOut Bind<TIn, TOut>(TIn inObject){ }
}
大家都知道我应该从哪里开始,或者我在哪里可以找到一些资源来学习这个?提前致谢。
【问题讨论】:
标签: c# generics c#-4.0 reflection model-binding