我正在尝试实现here之类的属性介绍,但我的属性包含属性参数,例如:[Foo(Bar = "Baz")]
如何正确传递参数?我不是从其他东西复制属性,所以我认为我不能使用CustomAttributeData?
答案 0 :(得分:1)
您可以使用ObjectConstruction.NamedArguments
字典设置自定义属性的属性。
例如:
public IEnumerable<AspectInstance> ProvideAspects(object targetElement)
{
Type targetType = (Type) targetElement;
var objectConstruction =
new ObjectConstruction(typeof (MyCustomAttribute).GetConstructor(Type.EmptyTypes));
objectConstruction.NamedArguments["Bar"] = "Baz";
var introduceAttributeAspect = new CustomAttributeIntroductionAspect(objectConstruction);
yield return new AspectInstance(targetType, introduceAttributeAspect);
}