Добавление общих свойств в класс insert динамически

#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 /…