DataContractSerializer - 配置系统无法初始化 - 应用程序配置设置

时间:2012-10-15 19:00:33

标签: c# .net serialization datacontractserializer datacontract

我正在使用DataContractSerializer作为一个独立的部分来序列化一些使用DataContract / Member的对象...不幸的是,如果我将自定义的App.Config部分添加到我的解决方案的配置设置中,它会一直抛出异常与此过程无关...例如,我的配置设置如下:

<configuration>
    <appSettings>
         <!--stuff goes here -->
    </appSettings>

    <MyCustomSectionItDoesntLike>
        <!--stuff goes here -->
    </MyCustomSectionItDoesntLike>
</configuration>

然后我拿走了这个对象并尝试使用内存流写...

DataContractSerializer serializer = new DataContractSerializer(item.GetType());
using (MemoryStream memoryStream = new MemoryStream())
    {
           serializer.WriteObject(memoryStream, item);

    }

如果我从配置设置中删除MyCustomSectionItDoesntLike,它可以正常工作,但当我重新插入时,会触发异常:

消息:

  

的类型初始值设定项   'System.Runtime.Serialization.DiagnosticUtility'引发了异常。

  

无法识别的配置部分MyCustomSectionItDoesntLike。   (D:\ test \ bin \ x86 \ Debug \ test.vshost.exe.config第47行)

我不确定为什么它不关心该设置在项目中的任何位置,除非我要进行序列化...是否需要添加设置或配置部分才能使其正常工作?

谢谢!

更新

总骨头错误....与序列化器无关......

<configuration>
    <configSections>
         <!--This is where i blew it -->
         <section name="MyCustomSectionItDoesntLike" type="System.Stuff.Stuff" />
    </configSections>
    <appSettings>
         <!--stuff goes here -->
    </appSettings>

    <MyCustomSectionItDoesntLike>
        <!--stuff goes here -->
    </MyCustomSectionItDoesntLike>
</configuration>

1 个答案:

答案 0 :(得分:1)

您必须在app.config文件的configSections中引用实现自定义部分的类。

查看http://msdn.microsoft.com/en-us/library/2tw134k3%28v=vs.100%29.aspx了解详情。