我需要在内存中建立一个网络文件集合的模型,但是它们之间的关系。即文件 A(例如 html)可能具有指向文件 B(例如 css)和文件 C(例如 javascript)的链接。文件 D 也可能需要文件 B。如果我想删除文件 A,我需要确保它使用的任何文件(例如文件 B)未被另一个文件(例如文件 D)使用。也许是这样的:
List<WebFile> list_of_webfiles
public class WebFile
- string url
- bool parentFile
public class FileRelationship
- private WebFile parentWebFile;
- private WebFile childWebFile;
问题 - 在 C# 中对此建模的最佳方法是什么?(例如,哪种集合类型以及如何建模)
注意 - 它必须在内存中建模(没有数据库),我也需要能够序列化为 XML 才能保存。我的意思的一个例子是看起来像这样的东西......
XmlSerializer serializer = new XmlSerializer(typeof(List<WebFile>));
TextWriter textWriter = new StreamWriter(CONFIG_FILE_PATH);
serializer.Serialize(textWriter, list_of_webfiles);
textWriter.Close();
谢谢
最佳答案
这似乎暗示了您可能拥有的分层“树”关系
Class WebFile:
- URL : string
- Parent : WebFile
- Children : WebFile[] (could be a list depending on the need)
然后在某个地方你有一个
List<WebFile> webFiles;
这种方法可以很容易地遍历网络文件树并找到相关文件,但很难列出所有文件本身。
或者,您可以单独存储文件列表和关系
Class WebFile
- URL : string
Class WebFileRelationship
- Parent : WebFile
- Child : WebFile
你有2个容器
List<WebFile> webFiles;
List<WebFileRelationship> relationships;
这种方法可以很容易地列出所有关系或所有文件,但很难确定各个关系。
这完全取决于您的应用程序,您是否需要有关单个文件或关系的更多信息?
关于c# - 我可以使用 C# 集合来保存具有自引用关系的类实例吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1523756/