Я не уверен, что лучший и самый простой способ сделать это, поэтому любые советы приветствуются.
Я хочу получить все поля в любом / все / одном доменном классе сущности и добавить префикс / удалитьпрефикс динамически при вызове определенного метода.
Например, у меня есть такие объекты, как:
public class Shop
{
public string TypeOfShop{get;set}
public string OwnerName {get;set}
public string Address {get;set}
}
public class Garage
{
public string Company {get;set}
public string Name {get;set}
public string Address {get;set}
}
и т. д. *
Я хочу получить списоксвойств с префиксом:
public Class Simple
{
public class Prop
{
public string Name{get;set;}
public string Value{get;set;}
}
public ICollection list = new List<Prop>();
//set all prop
public void GetPropertiesWithPrefix(Garage mygarage, string prefix)
{
list.Add(new Prop{Name = prefix + "_Company", Value = mygarage.Company});
//so on... upto 50 props...
}
}
//to get this list I can simple call the list property on the Simple class
При чтении каждого поля я использую оператор switch и задаю значение.
//Note I return a collection of Prop that have new values set within the view,lets say
//this is a result returned from a controller with the existing prop names and new values...
public MyGarage SetValuesForGarage(MyGarage mygarage, string prefix, ICollection<Prop> _props)
{
foreach (var item in _prop)
{
switch(item.Name)
{
case prefix + "Company":
mygarage.Company = item.Value;
break;
//so on for each property...
}
}
}
Есть ли лучший, более простой или более элегантный способсделать это с linq или иным способом?