我正在尝试在.tt文件中使用一些反射,更具体地说是确定类上的KnownTypes。要做到这一点,我只使用简单的反射,或者更喜欢使用简单的反射,但当我尝试:
List<String> GetKnownTypes(EntityType entity)
{
List<String> knownTypes = new List<String>();
System.Reflection.MemberInfo info = typeof(EntityType);
object[] attributes = info.GetCustomAttributes(typeof(KnownTypeAttribute), false);
for (int i = 0; i < attributes.Length; i++)
{
KnownTypeAttribute attr = (KnownTypeAttribute)attributes[i];
knownTypes.Add(attr.Type.Name);
}
return knownTypes;
}
我被耳朵打了一个错误:
错误1编译转换:类型或命名空间名称 找不到'KnownTypeAttribute'(你是否错过了使用 指令或程序集引用?)
但是,我有一个System.Runtime.Serialization的引用。我也导入 &lt;#@ import namespace =“System.Runtime.Serialization”#&gt;在tt文件的开头。 目标框架是.NET framework 4(没有客户端配置文件)。
有什么想法吗?
答案 0 :(得分:2)
你有一个&lt;#@ assembly#&gt;引入System.Runtime.Serialization的指令?在VS2010中,项目引用在T4中的装配分辨率中不起任何作用。