好吧,我认为标题本身就可以解释。
我正在尝试通过电线导出配置对象,但它看起来很困难,该类不可序列化并且......它是密封的,所以这里没有遗产。
像以前有人做过这样的事情吗?
问候
好吧,我认为标题本身就可以解释。
我正在尝试通过电线导出配置对象,但它看起来很困难,该类不可序列化并且......它是密封的,所以这里没有遗产。
像以前有人做过这样的事情吗?
问候
Well I think I found a good solution for this issue. It passes by serializing the sections instead of the Configuration object itself. So, to ensure all the sections I need get Serialized/Deserialized together I've wrapped them all in one ConfigurationSectionGroup. I does the job, and allows me to export and import settings trough a WCF service, or directly on file. Here's the code I used:
A configuration section base class:
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);
}
}
Hope it helps someone...
Regards
您将不得不取出您真正需要的位,将它们放入一个单独的类中,该类可序列化并具有[DataContract]
WCF[DataMember]
序列化的属性,然后您需要在另一端执行相反的操作。
WCF 仅传输数据 - 以 XML 格式序列化。如果您不能按原样序列化数据,则需要自己解决它 - 没有灵丹妙药可以用另一种方式解决这个问题......
为了减轻将大量属性从一个类复制到另一个类的痛苦,我建议使用像AutoMapper这样的库,它可以消除从一个对象分配给另一个对象的大量无聊、重复的代码。
该类更像是访问应用程序配置文件的传递。序列化它并没有多大意义,但您可能想要做的是从中提取值并将它们填充到您控制的新类中。然后你所要做的就是确保新类是可序列化的。