Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 其他类型的.net配置文件_C#_.net_Configuration - Fatal编程技术网

C# 其他类型的.net配置文件

C# 其他类型的.net配置文件,c#,.net,configuration,C#,.net,Configuration,好的,这不是最有用的问题,因为我记不起.net中做这件事的功能了。基本上,这就是我要问的;这是什么特点 大约一年前,我在做一个项目,我们使用了配置文件,这些文件使用类成员的特定属性直接映射到一个类。这不是标准的app.config,而是assemblyname.dll.xml 也许这是unity框架中的一个特性?只是在黑暗中捅一刀。 我今天弄明白这一点并不重要,但它只是压在我的脑袋上,让我不记得了 谢谢 据我所知,这不是.Net bcl或Unity的一部分。也许是其他第三方或开源组件?也就是说,

好的,这不是最有用的问题,因为我记不起.net中做这件事的功能了。基本上,这就是我要问的;这是什么特点

大约一年前,我在做一个项目,我们使用了配置文件,这些文件使用类成员的特定属性直接映射到一个类。这不是标准的app.config,而是assemblyname.dll.xml

也许这是unity框架中的一个特性?只是在黑暗中捅一刀。
我今天弄明白这一点并不重要,但它只是压在我的脑袋上,让我不记得了


谢谢

据我所知,这不是.Net bcl或Unity的一部分。也许是其他第三方或开源组件?也就是说,使用XmlSerialization自己构建类似的东西并不太困难。

它不是标准的XML配置,但它内置在.NET中。基本上,XML序列化允许您从水合类实例投影XML文档,该实例将1:1映射到它所来自的类,并可用于重新水合该类的新实例

在大多数情况下,您无需付出太多努力就可以做到这一点。XML序列化工作通常需要的是对象必须有一个公共的默认构造函数,并且要序列化的所有状态信息必须是公共的和读写的。在少数情况下,某些属性是定义某些行为所必需的,例如父类数组中的派生类,以及为字段和属性元素标记定义非默认名称

如您所述,它的主要用途之一是用于自定义配置文件;只需将文件反序列化到配置对象的实例中,就可以从持久状态加载配置


.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命名空间进行访问。

Ah,可能只是xml序列化。谢谢我不确定我是否在寻找更神秘的东西。更具体地说,是DataContractSerializer。我想根据具体的需要,一个或另一个是首选的。DataContractSerializer主要用于WCF,因此它不仅可以用于XML,还可以用于JSON。但是,正如您所发现的,当您真正需要将对象转换为您自己的计算机上的文件并返回时,序列化就是序列化。