gpt4 book ai didi

.net - 一个好的 TDD-Friendly .NET 文件 IO 库

转载 作者:行者123 更新时间:2023-12-04 17:28:59 25 4
gpt4 key购买 nike

关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。












想改进这个问题?将问题更新为 on-topic对于堆栈溢出。

6年前关闭。




Improve this question




许多人都知道,System.IO 命名空间的设计非常糟糕。我想要一个免费的库,它以一种理智的方式包装文件 IO 功能(阅读:不需要你到处传递字符串)。我记得前段时间读到,已经编写了一小部分这样的库(作者很惊讶没有更多的库)。我认为是 devlicious 上的其中一个人或 codebetterLos Techies其中之一就是这样做的。

有谁知道我在说什么或另一个好的 File IO 包装器?

编辑:我想我应该指定我进行测试驱动开发,我的担忧主要(但不完全)围绕 System.IO 的测试友好性。

最佳答案

System.IO.FileInfo 有什么问题?

我很好奇,所以开始使用 ReSharper 创建一组包装器。花了我16分钟,我没有测试过,不知道是否满足你的需求。不过,我想我会概述我使用的过程:

  • 新建类库项目
  • 公开 Class1 并将其重命名为 FileSystemInfoWrapper
  • 给它一个 FileSystemInfo 类型的私有(private)字段 _fsi(解析类以获取导入的命名空间)
  • 单击该字段并选择在构造函数中初始化
  • 再次单击该字段并使用 ReSharper -> Code -> Generate (Alt+Ins);选择生成委托(delegate)成员;点击“公众号”获取所有公众号
  • FileInfo 相同,但也派生自 FileSystemInfoWrapper 并删除重复的成员(ReSharper 在这里可以做得更好)
  • DirectoryInfo 相同,但也派生自 FileSystemInfoWrapper 并修复重复项
  • 对于每个包装器,单击类,然后使用 ReSharper->Refactor->Extract Interface
  • 让 IFileInfoWrapper 和 IDirectoryInfoWrapper 从 IFileSystemInfoWrapper 派生,并删除重复项。

  • 结果是包含相应类的方法和属性的接口(interface),以及委托(delegate)给原始类并实现接口(interface)的具体类。然后,您应该能够创建自己的模拟类,并更改代码以使用接口(interface)而不是直接使用 System.IO 具体类。

    关于.net - 一个好的 TDD-Friendly .NET 文件 IO 库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1094336/

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