C# 向类插入动态添加泛型属性

C# 向类插入动态添加泛型属性,c#,.net,class,C#,.net,Class,我必须建立一组泛型属性,这些属性是使用incident类设置的,如果数组中的对象名称中包含$,则应该通过类型为incident的泛型属性进行访问 string[] props = { "Id", "Status", "Title","Description" ,"$Fullname$"}; StringBuilder sb = new StringBuilder(); for (int i = 0; i < props.Length; i++)

我必须建立一组泛型属性,这些属性是使用incident类设置的,如果数组中的对象名称中包含$,则应该通过类型为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");

                }

            }


        }

那么,你的问题是?你想做的事情不会那么容易。您是否考虑过用自定义属性来制作关键值字典?这看起来像是解决一个可能微不足道问题的黑客解决方案?您可以尝试使用ExpandoObject,更多信息请参见:
            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 && 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 && emop.Object[null, "Description"].Value != null ? emop.Object[null, "Description"].Value.ToString() : string.Empty
            };