#c# #.net #class
#c# #.net #класс
Вопрос:
Мне нужно создать набор общих свойств, которые задаются с помощью класса инцидентов, если объект в массиве содержит $ в своем имени, к нему должен быть доступ через общее свойство типа incident .
string[] props = { "Id", "Status", "Title","Description" ,"$Fullname$"};
StringBuilder sb = new StringBuilder();
for (int i = 0; i < props.Length; i )
{
if (props[i].ToLowerInvariant().Contains('$'))
{
if (props[i] == "$Fullname$")
{
sb.Append("Fullname=emop.Object.Fullname");
}
}
}
То, что я думал сделать, это создать конструктор строк, используя следующее, но, конечно. У меня нет способа сделать это в конструкторе класса, поскольку класс не будет иметь полного имени, чтобы быть свойством класса incident до времени выполнения.
Incident incident = new Incident()
{
InternalId = emop.Object.Id,
Id = emop.Object[null, "Id"] != null ? emop.Object[null, "Id"].ToString() : string.Empty,
Title = emop.Object[null, "Title"] != null amp;amp; emop.Object[null, "Title"].Value != null ? emop.Object[null, "Title"].Value.ToString() : string.Empty,
Name = emop.Object.Name,
sb.ToString(), //OUTPUT the generic properties
LastModified = emop.Object.LastModified,
Description = emop.Object[null, "Description"] != null amp;amp; emop.Object[null, "Description"].Value != null ? emop.Object[null, "Description"].Value.ToString() : string.Empty
};
Комментарии:
1. Итак, ваш вопрос?
2. То, что вы пытаетесь сделать, на самом деле было бы не так просто. Рассматривали ли вы вместо этого просто создание словаря значений ключа с пользовательскими свойствами? Это просто выглядит как хакерское решение потенциально тривиальной проблемы?
3. вы можете попробовать с помощью ExpandoObject, более подробная информация здесь: codeproject.com/Articles/62839 /…