3
Есть ли способ создать атрибут с выражением typeof
с общим типом?Как создать [CustomAttribute (typeof (GenericType <,>))] с помощью ReSharper SDK?
Следующий код работает только частично:
CSharpElementFactory factory = ...
IClassDeclaration typeDeclaration = ...
IClassDeclaration classDeclaration = ...
IType[] attributeTypeParameters =
(from typeParameter in classDeclaration.TypeParameters
select (IType)TypeFactory.CreateUnknownType(module)).ToArray();
IType classType = TypeFactory.CreateType(classDeclaration.DeclaredElement,
attributeTypeParameters);
var attribute = factory.CreateAttribute(
new SpecialAttributeInstance(
ClrTypeNames.ContractClassAttribute,
module,
() => new[] { new AttributeValue(classType) },
Enumerable.Empty<Pair<string, AttributeValue>>));
typeDeclaration.AddAttributeAfter(attribute, null);
'TypeElementUtil.GetTypeElementByClrName (someGenericClass, модуль)' является недействительным. Таким образом, 'TypeFactory.CreateType (someGenericTypeElement ...) генерирует исключение. –
Какую версию .Net вы используете? (Я имею в виду, .NET framework для проекта.) –
Целевая структура - это 4 (а не профиль клиента). –