gpt4 book ai didi

c# - 在 c# 代码文件中内联原始 XML

转载 作者:太空宇宙 更新时间:2023-11-03 21:35:17 25 4
gpt4 key购买 nike

我正在创建对象序列化单元测试,并希望将对象的 XML 内联到 c# 代码单元测试文件中。我知道内联它的最简单方法是使用 @ 前缀作为字符串:

var xml = @"<Something> 
<AnotherSomething/>
<AnotherSomething/>
</Something>";

我的问题是我的 XML 包含属性并且它非常大,为了内联它我需要遍历所有 XML 并为 XML 中的每个“”设置转义符,这样做对于一个非常大的XML 节点很困难,维护起来也很困难 -

var xml = @"<Something Att=""s"" Att2=""gg""> 
<AnotherSomething/>
<AnotherSomething/>
</Something>";

我不想将 XML 作为另一个文件并将其标记为部署项 -

[DeploymentItem("Something.xml")]

因为它需要单元测试从磁盘加载文件,这会使单元测试慢得多,我可能有很多这样的单元测试。

有没有其他方法可以将 XML 不加修改地放入代码中?

最佳答案

@leon 的评论建议使用资源文件,但我更进一步。

  1. 添加文件夹资源
  2. 添加 Resources.resx 文件(根据需要重命名)
  3. 添加带有测试数据的 xml 文件 TestData.xml
  4. 将其嵌入资源
  5. 将 xml 文件从解决方案资源管理器拖到 Resource.resx
  6. 确保您的 TestData.xml 资源类型是文本而不是二进制
  7. 编译

现在将您的测试数据称为

string data = Resources.TestData;

关于c# - 在 c# 代码文件中内联原始 XML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22166261/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com