Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/328.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
C# 如何以编程方式将文档从.xml文件导入.cs文件?_C#_Visual Studio_Documentation - Fatal编程技术网

C# 如何以编程方式将文档从.xml文件导入.cs文件?

C# 如何以编程方式将文档从.xml文件导入.cs文件?,c#,visual-studio,documentation,C#,Visual Studio,Documentation,我在.xml文件中保存了如下文档: 班级图书馆2 第1类虚拟文档 Func1虚拟文档 我不想将文档导入到.cs文件中,该文件如下所示: 命名空间类库2 { 公共班级1 { void Func1() { } } } 因此,在导入后,我的文件将如下所示: 命名空间类库2 { /// ///第1类虚拟文档 /// 公共班级1 { /// ///Func1虚拟文档 /// void Func1() { } } } 如何以编程方式执行此操作 我应该使用CodeDOM还是Visual Stu

我在.xml文件中保存了如下文档:


班级图书馆2
第1类虚拟文档
Func1虚拟文档
我不想将文档导入到.cs文件中,该文件如下所示:

命名空间类库2
{
公共班级1
{
void Func1()
{
}
}
}
因此,在导入后,我的文件将如下所示:

命名空间类库2
{
/// 
///第1类虚拟文档
/// 
公共班级1
{
/// 
///Func1虚拟文档
/// 
void Func1()
{
}
}
}
如何以编程方式执行此操作

我应该使用
CodeDOM
还是Visual Studio?还是Roslyn或其他工具

任何帮助都将不胜感激


提前感谢。

使用CodeDom,Roslyn是编译器平台,不会帮助您解决问题

  • 将cs加载到codedom图中
  • 在图中查找方法/属性并添加CodeCommentStatement-请参阅
  • 从图形生成一个新的源文件(示例在我提供的链接中)
  • 编辑: 也许使用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);
    
    以下是创建新注释的方法:

    库的完整文档:

    有趣。。。在过去,它是从.cs文件中剥离出来的吗?我只看到了从.cs文件本身生成的XML。这个问题可能会导致@BrootsWaymb。事实上,文档是从.cs文件中获取的,但它被意外删除,并保留在XML文件中,现在需要返回。这是一个非常大的文档量。通常xml文档是从.cs文件创建的。你有dll还是只有xml文件?如果你有dll,你可以使用一个去编译器来获取代码。例如,我很惊讶这个问题没有被问过一百次。另一个例子:用例:一家公司拥有私有软件,将评论导出为XML,通过SandCastle发布文档。无法访问源代码的用户希望帮助修复文档。为了避免复制/粘贴到代码源中的两步过程,最好从XML重新生成行内代码注释。这个问题的答案是不完整的。找到/创建一个实际的解决方案会很好。您的解决方案是否也适用于包含数百个CS文件的项目?CodeDom能够读取属于同一个项目的多个不同文件吗?应该不会有问题。没有将CodeDOM用于此类问题,只是用于创建自动生成的代码。对于类或文件的数量没有问题。只需加载xml文档文件,然后将关联的cs文件加载到codedom图中,添加注释并保存新的注释(以便更好地测试到新目录:D)。然后在下一个xml文档中执行此操作。您能否提供一个示例,说明如何将大量.cs文件加载到Codedom graph,非常感谢。请使用Microsoft.CodeAnalysis.CSharp检查我的编辑,我认为添加注释和获取新的代码文件会更容易