3
有沒有辦法使用泛型類型創建typeof
表達式的屬性?如何使用ReSharper SDK創建[CustomAttribute(typeof(GenericType <,>))]?
下面的代碼工作只是部分:
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 ...'引發一個異常 – 2012-01-17 06:28:06
你使用的是什麼版本的.Net(我的意思是,該項目的.Net框架目標。) – 2012-01-17 12:58:42
目標框架是4(不是客戶端配置文件)。 – 2012-01-17 21:50:52