我看到.xml文件中的文档如下:
<?xml version="1.0"?>
<doc>
<assembly>
<name>ClassLibrary2</name>
</assembly>
<members>
<member name="T:ClassLibrary2.Class1">
<summary>
Class1 Dummy documentation
</summary>
</member>
<member name="M:ClassLibrary2.Class1.Func1">
<summary>
Func1 Dummy documentation
</summary>
</member>
</members>
</doc>
我不会将文档导入如下所示的.cs文件:
namespace ClassLibrary2
{
public class Class1
{
void Func1()
{
}
}
}
这样,在导入后我的文件将如下所示:
namespace ClassLibrary2
{
/// <summary>
/// Class1 Dummy documentation
/// </summary>
public class Class1
{
/// <summary>
/// Func1 Dummy documentation
/// </summary>
void Func1()
{
}
}
}
我该如何以编程方式执行此操作?
我应该使用CodeDOM
还是Visual Studio?还是Roslyn
或其他工具?
我们将不胜感激
谢谢。
答案 0 :(得分:0)
使用CodeDom,罗斯林是编译器平台,不会对您的问题有所帮助。
编辑: 也许使用roslyn的Microsoft.CodeAnalysis库(添加Microsoft.CodeAnalysis.CSharp nuget包)会更容易
var syntaxTree= CSharpSyntaxTree.ParseText(code);
//search for the methods and properties and add comments
// ** your code **
//
//getting the new sourcecode
var root = (CompilationUnitSyntax)syntaxTree.GetRoot();
var mc= new ModelCollector();
mc.Visit(root);
string newCode = JsonConvert.SerializeObject(mc.models);
以下是创建新评论的方法: https://docs.microsoft.com/en-us/dotnet/api/microsoft.codeanalysis.csharp.syntaxfactory.comment?view=roslyn-dotnet
lib的完整文档: https://docs.microsoft.com/en-us/dotnet/api/microsoft.codeanalysis.csharp?view=roslyn-dotnet