C# 向类插入动态添加泛型属性
我必须建立一组泛型属性,这些属性是使用incident类设置的,如果数组中的对象名称中包含$,则应该通过类型为incident的泛型属性进行访问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++)
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
};