好的,所以这不是最有用的问题,因为我不记得.net中的这个功能。基本上,这就是我所要求的;这是什么特色?
大约一年前,我正在开发一个项目,我们使用了使用类成员上的特定属性直接映射到类的配置文件。这不是标准的app.config,而是assemblyname.dll.xml。
也许这是统一框架内的一个特征?只是在黑暗中刺伤。
我今天想到这一点并不重要,但它只是在压制我的大脑并让我烦恼,我记不起来了!
谢谢!
答案 0 :(得分:3)
它不是标准的XML配置,而是内置于.NET中。基本上,XML序列化允许您从水合类实例中投影XML文档,该实例将1:1映射到它来自的类,并可用于重新补充该类的新实例。
在大多数情况下,这可以在您不费力的情况下完成。 XML序列化通常需要的只是对象必须具有公共默认构造函数,并且要序列化的所有状态信息必须是公共的和读写的。在少数情况下,某些属性是定义某些行为所必需的,例如父类数组中的派生类,以及为字段和属性元素标记定义非默认名称。
其中一个主要用途是用于您所说的自定义配置文件;您可以通过简单地将文件反序列化为配置对象的实例来从持久状态加载配置。
答案 1 :(得分:0)
据我所知,这不是.Net bcl或Unity的一部分。也许是其他第三方或开源组件?话虽如此,使用XmlSerialization自行构建类似的东西并不太难。
答案 2 :(得分:0)
.net允许多层配置。
每台计算机都有machine.config文件。每个应用程序都有app.config文件(在构建时将其重命名为applicationname.exe.config),但每个dll也可以拥有自己的配置文件。所以,如果我的可执行文件夹中有以下二进制文件:
flexitris.exe
flexitrisHelpers.dll
thirdPartyContent.dll
每个人都可以拥有自己的配置文件:
flexitris.exe.config
flexitrisHelpers.dll.config
thirdPartyContent.dll.config
并且所有这些都将在运行时读取,并使用普通的System.Configuration命名空间进行访问。