我写道,从像这样的对象提取领域的方法:
private static string GetHTMLStatic(ref Object objectX, ref List<string> ExludeFields)
{
Type objectType = objectX.GetType();
FieldInfo[] fieldInfo = objectType.GetFields();
foreach (FieldInfo field in fieldInfo)
{
if(!ExludeFields.Contains(field.Name))
{
DisplayOutput += GetHTMLAttributes(field);
}
}
return DisplayOutput;
}
在我的课每场也有它自己的属性,在这种情况下,我的属性被称为HTMLAttributes。 在foreach循环,我试图让每个字段的属性和它们各自的值。 目前,它看起来像这样:
private static string GetHTMLAttributes(FieldInfo field)
{
string AttributeOutput = string.Empty;
HTMLAttributes[] htmlAttributes = field.GetCustomAttributes(typeof(HTMLAttributes), false);
foreach (HTMLAttributes fa in htmlAttributes)
{
//Do stuff with the field's attributes here.
}
return AttributeOutput;
}
我的属性类如下所示:
[AttributeUsage(AttributeTargets.Field,
AllowMultiple = true)]
public class HTMLAttributes : System.Attribute
{
public string fieldType;
public string inputType;
public HTMLAttributes(string fType, string iType)
{
fieldType = fType.ToString();
inputType = iType.ToString();
}
}
这似乎是合乎逻辑的,但它不会编译,我在GetHTMLAttributes(红色波浪线)方法下:
field.GetCustomAttributes(typeof(HTMLAttributes), false);
本场我试图提取属性的是像这样使用另一个类:
[HTMLAttributes("input", "text")]
public string CustomerName;
从我的理解(或缺乏)这应该工作? 请扩大我的脑海开发伙伴!
*编辑器,编译器错误 :
无法隐式转换类型“对象[]”到“data.HTMLAttributes []”。 一个显式转换存在(是否缺少强制转换?)
我试图铸造这样的:
(HTMLAttributes)field.GetCustomAttributes(typeof(HTMLAttributes), false);
但是,这也不起作用,我得到这个编译器错误:
无法将类型“对象[]”到“data.HTMLAttributes”