我正在使用文档类。第一次是针对普通文件,使用New()、Open()、Save()等方法。
New() 和 Open() 返回一个 IDocument。保存不会返回任何内容。 正如您在上图中看到的。
在我的程序中,它必须使用 xml 或 zip 文件扩展名。对于xml文件有什么问题,所有的方法都可以解决。但我在 zip 文件方面遇到了问题。我打算这样做,当程序执行 Open() 时,从 zip 中提取所有 xml 文件并返回所有文件。但我的 Open() 只返回一个文档。
我计划创建另一个名为 CanExtract() 的属性,但这也许不是一个好主意。我只是想创造一个好的设计并且可以理解。
最佳答案
更改 Open() 函数以返回 IDocument 的 IEnumerable:
public IEnumerable<IDocument> Open()
而不是
public IDocument Open()
然后,当您打开一个 xml 文件时,它会返回一个包含 1 个 IDocument 的 IEnumerable,您可以只使用该文件。当您打开 zip 文件时,它会返回 zip 中的所有文件作为 IEnumerable 内的 IDocuments。
关于c# - 如何建模 Document 类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8608534/