我有一个包含这些属性的业务对象:
Public class Person
{
prop int ID {get; set;}
prop string Name {get; set;}
prop string Address1 {get; set;}
prop string Address2 {get; set;}
}
有这种方法
Public Void CreateEntity(Person objPerson)
{
Person newPerson = new Person();
newPerson.Name = objPerson.Name;
newPerson.ID = objPerson.ID;
newPerson.Address1 = objPerson.Address1;
newPerson.Address2 = objPerson.Address2;
...
// Do some stuff
}
它基本上将objPerson的所有属性分配给newPerson。
有没有办法为newPerson分配选择性属性?
而不是一对一,可以选择性地完成,就像只做
一样 newPerson.Address1 = objPerson.Address1;
newPerson.Address2 = objPerson.Address2;
在方法中。
我可以使用外部配置来定义所需的属性。 因此,如果该配置只有Address1和Address2,则newPerson只会获得这两个分配。
可以这样做吗?
问候。
答案 0 :(得分:1)
如果我理解了你想要的东西,你可以使用对象初始化器:
var person = new Person{ ID = 123456, Name = "Foo"};
答案 1 :(得分:0)
使用对象初始值设定项:
var obj = new Person { ID = 1, Name = "Test" };
答案 2 :(得分:0)
为每个公共属性添加私有字段,并在公共属性中使用此字段,而不是直接使用get; set;
。
然后将您的条件写入setter,并且只有在条件满足时才更改私有相关的私有字段。
private int id;
public int ID {
get
{
return id;
}
set
{
if(someCondition)
id = value;
}
}