是否可以在运行时获取类摘要?
是否可以在C#中在运行时获取类摘要? 我想通过reflection获取课程摘要,然后将其写入控制台。 通过类摘要我的意思是在类定义之前的摘要注释,如下所示:
/// /// some description /// class SomeClass { }
我不知道在编译代码后这些注释是否可用,但如果它们可能有一种方法可以在代码中获取它们。
在此先感谢您的帮助。
我曾经一度搞砸了这个,并使用了这个家伙解决方案。 工作得很好:
https://jimblackler.net/blog/?p=49
我在CodePlex上维护了Jolt.NET项目,并实现了执行此任务的function。 有关更多信息,请参阅Jolt库。
从本质上讲,库允许您使用System.Reflection
的元数据类型(即MethodInfo
, PropertyInfo
等)以编程方式查找和查询程序集的XML doc注释文件。
不,他们通过反思无法获得。 见msdn :
XML文档注释不是元数据; 它们不包含在已编译的程序集中,因此无法通过reflection访问它们。
您无法在运行时访问它们,因为它们被编译器视为注释。
但是,如果您想使用属性来指定信息并在运行时通过reflection访问它,您可以这样做。
有关运行时访问,请参阅创建属性创建的自定义属性(C#编程指南)和使用reflection访问属性(C#编程指南) 。
来自MSDN的示例:
Author.cs:
public class Author : System.Attribute { private string name; public double version; public Author(string name) { this.name = name; version = 1.0; } }
SampleClass.cs:
[Author("H. Ackerman", version = 1.1)] class SampleClass { // H. Ackerman's code goes here... }
如果发出XML文档文件,则可以。 该过程将涉及使用reflection来获取该类型的所有公共成员,然后使用XPath,从生成的XML文档中读取文档。
更新:在您的dll / exe中包含XML文档,只需将其添加为嵌入式资源,如果文档更改,则编译两次。
不,这些注释不包含在已编译的程序集中。
Visual Studio可以在输出文件夹( bin your_project.xml)中创建包含这些注释的.xml文件。 如果您的应用程序与该xml文件一起分发,那么您将能够以编程方式访问它。
上述就是C#学习教程:是否可以在运行时获取类摘要?分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/cdevelopment/958368.html