Атрибут KnownType в файле t4 - PullRequest
       28

Атрибут KnownType в файле t4

1 голос
/ 14 сентября 2011

Я пытаюсь использовать некоторые отражения в файле .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. Я также импортирую <# @ import namespace = "System.Runtime.Serialization" #> в начале файла tt. Целевой платформой является .NET Framework 4 (без профиля клиента).

Есть мысли?

1 Ответ

2 голосов
/ 14 сентября 2011

Есть ли у вас директива <# @ assembly #> для ввода System.Runtime.Serialization? В VS2010 ссылки на проекты не играют никакой роли в разрешении сборки в T4.

...