Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.Net反射以获取类/属性等的描述?_.net_Asp.net_Vb.net_Reflection - Fatal编程技术网

.Net反射以获取类/属性等的描述?

.Net反射以获取类/属性等的描述?,.net,asp.net,vb.net,reflection,.net,Asp.net,Vb.net,Reflection,我知道这不太可能,但我想知道是否有任何方法可以获取类或属性的注释(即“%”后面的位)。。?我已经使用PropertyInfo类获得了一个类的属性列表,但是我找不到一种方法来获得注释/描述。。我需要它作为一个指南,我正在为我的网站管理员写-这将是伟大的,如果它可以自动更新,如果新的属性被添加,所以没有必要担心在未来更新它太多。有人知道怎么做吗?提前谢谢 问候, Richard我想您是在谈论XML注释,对吗 在这种情况下,有一些第三方工具可以将它们转换为各种格式,包括编译的帮助文件和完整的MSDN样

我知道这不太可能,但我想知道是否有任何方法可以获取类或属性的注释(即“%”后面的位)。。?我已经使用PropertyInfo类获得了一个类的属性列表,但是我找不到一种方法来获得注释/描述。。我需要它作为一个指南,我正在为我的网站管理员写-这将是伟大的,如果它可以自动更新,如果新的属性被添加,所以没有必要担心在未来更新它太多。有人知道怎么做吗?提前谢谢

问候,


Richard

我想您是在谈论XML注释,对吗

在这种情况下,有一些第三方工具可以将它们转换为各种格式,包括编译的帮助文件和完整的MSDN样式的网站

Jon Skeet上周刚刚发布了一篇关于此的博客:

不,您不能使用反射来执行此操作


您可以做的是配置Visual Studio(或您使用的任何构建过程),以便在构建时创建一个包含注释的XML文件,然后分发该文件。

您无法通过反射访问正常注释。
但是,如果您使用(我认为这是在VB“”中),则可以创建一个文档文件(在我的C#project中的project properties->build->output path/xml文档文件下),您可以访问该文件。但你不需要反思


还有一些关于VBasic中xml注释的描述。

一旦编译了一个类,文档注释就消失得无影无踪了。如果使用编译,您将获得一个XML文件,尽管您可以使用该文件。

您可以使用属性属性装饰属性,并使用反射读取属性中的数据:


[Description('This is my property description')]
public String MyStringProp { get; set; }

然后使用阅读说明。

顺便说一句,我的意思是在编译和部署说明时获取说明,如果这有什么不同的话。我现在找到了一种替代方法。。不知道为什么我以前没有想到它——它太明显了。。基本上是为了目录。目录有一个管理前端,带有一个指南,告诉用户什么是什么(即如何创建项目,每个属性用于什么等等)。。最明显的方法是创建一个名为Attribute的新类-它包含用于描述等的属性,然后是用于StringAttribute、BooleanAttribute等的其他类。这些项现在需要包含属性类的实例属性。。傻瓜!我指的是你在一行上放了3次“”,然后VisualWebDeveloper在同一个地方放了很多额外的行,比如或。。我认为它们是xml注释,所以是的,我认为我们谈论的是同一件事。。谢谢。嘿,是的,这看起来是一个更可行的解决方案,只要您可以定义大量自定义属性(即描述、必需、用于验证格式是否正确以及字符串长度是否正确等的正则表达式)。。这是自定义属性的公认用途吗?如果您仅将数据用于文档,请确定。它仍然会膨胀你的类,但它确实增加了价值。如果这些代码将定期使用,我建议不要使用。以下是创建属性的参考。您可以创建任意数量的对象:嗯,在VB中似乎不可用,或者没有可用的示例(引用msdn)。。我已经创建了一个名为DevDescription的类,它将描述作为字符串,并使用布尔值表示是否需要。我已经使用设置了自定义属性-我找不到一种方法来获取它但是..我想我可能已经得到了它-我现在已经得到了输出属性名称和描述列表的方法!谢谢你的帮助。。
FieldInfo.GetCustomAttributes