t4文件中的KnownTypeAttribute

时间:2011-09-14 11:53:47

标签: visual-studio-2010 reflection t4 known-types

我正在尝试在.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(没有客户端配置文件)。

有什么想法吗?

1 个答案:

答案 0 :(得分:2)

你有一个&lt;#@ assembly#&gt;引入System.Runtime.Serialization的指令?在VS2010中,项目引用在T4中的装配分辨率中不起任何作用。