如何发送system.configuration.configuration对象wcf
-
10-10-2019 - |
题
好吧,我认为标题本身就解释了。
我正在尝试导出配置对象的导线,但是看起来很困难,该类是不可序列化的,并且是……密封的,因此这里没有遗产。
就像任何人以前做过这样的事情吗?
问候
解决方案 3
好吧,我想我为这个问题找到了一个很好的解决方案。它通过序列化部分而不是配置对象本身来传递。因此,为了确保所有的部分都需要序列化/避难所化,我将它们全部包裹在一起。我完成了这项工作,允许我导出和导入设置陷入WCF服务或直接在文件中。这是我使用的代码:
配置部分基类:
public abstract class ConfigurationSectionBase : ConfigurationSection
{
public string Serialize()
{
return SerializeSection(null, Name, ConfigurationSaveMode.Minimal);
}
public void Deserialize(string configuration)
{
XmlReader reader = XmlReader.Create(new StringReader(configuration));
if (!reader.ReadToFollowing(Name)) return;
StringBuilder stringBuilder = new StringBuilder().Append(reader.ReadOuterXml());
var stringReader = new StringReader(stringBuilder.ToString());
reader = XmlReader.Create(stringReader);
DeserializeSection(reader);
}
}
希望它能帮助某人...
问候
其他提示
您将不得不摘下您真正需要的位,将它们放入一个可序列化的单独类中 [DataContract]
和 [DataMember]
WCF序列化的属性,然后您需要在另一端进行反面。
WCF仅传输数据 - 以XML格式序列化。如果您无法按原样序列化数据,则需要自己解决 - 没有魔术子弹可以换句话说...
为了减轻从一个班级复制许多属性的痛苦,我建议使用某些图书馆 汽车应用程序 这可以消除许多无聊的,重复的代码,从一个对象分配到另一个对象。
该类更像是访问应用程序的配置文件的通行证。序列化它并没有多大意义,但是您可能要做的就是将其从中撤出,然后将它们塞入您控制的新课程中。然后,您要做的就是确保新类是可序列化的。
不隶属于 StackOverflow