CodeDOM 类 CodeAttributeDeclaration 中的 AttributeType 属性有何用途?
我正在进行代码生成,创建自定义属性来使用 CodeDOM 装饰类,目标是 C# 和 VB。 为此,我创建了 CodeAttributeDeclaration 类的一个实例。
我当前正在设置 AttributeType 属性以及 Name,但它似乎没有被使用。相反,Name 属性仅用于生成属性声明。
我错过了什么吗?该房产有何用途?
I'm doing code generation, creating a custom attribute to decorate a class using CodeDOM, targetting C# and VB.
To do this, I'm creating an instance of the CodeAttributeDeclaration class.
I'm currently setting the AttributeType property, as well as the Name, but it does not seem to be used. Instead, the Name property is all that is used to produce the attribute declaration.
Am I missing something? What is this property used for?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
这是一种替代方案(我相信,有一段时间没有使用 CodeDOM) - 您可以使用名称或类型来定义属性声明。如果两者都设置了,它将(显然)使用该名称。查看构造函数的重载这种类型提供了一些线索。
查看反射器,结果发现设置 Name 总是强制 AttributeType 成为同名的 CodeTypeReference,并且采用 TypeReference 的构造函数也总是设置名称 - 所以甚至不能设置一个来代替另一个。
It's an alternative (I believe, haven't done CodeDOM for a while) - you can define the attribute declaration using either a name or a type. If both are set, it will (apparently) use the name. Looking at the overloads for the constructor of this type gives some clues to this.
Looking in reflector, it turns out that setting the Name always forces the AttributeType to be a CodeTypeReference to the same name, and the constructors that take the TypeReference always set the name also - so it's not even that one can be set instead of the other.