配置与扩展
配置文件
通过配置文件可以配置多个序列化器,通过更换 default 的值即可实现无缝切换。配置文件如下:
- .Net Framework 下的 app.config 或 web.config 文件
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<sectionGroup name="fireasy">
<section name="serialzers" type="Fireasy.Common.Serialization.Configuration.SerializerConfigurationSectionHandler, Fireasy.Common"/>
</sectionGroup>
</configSections>
<fireasy>
<serialzers default="newtonsoft">
<serializer name="newtonsoft" type="Fireasy.Newtonsoft.Serializer, Fireasy.Newtonsoft" />
<serializer name="demo" type="demo.XmlSerializer, demo" />
</serialzers>
</fireasy>
</configuration>
- .Net Core 下的 appsettings.json 文件
{
"fireasy": {
"serialzers": {
"default": "newtonsoft",
"settings": {
"newtonsoft": {
"type": "Fireasy.Newtonsoft.Serializer, Fireasy.Newtonsoft"
},
"demo": {
"type": "demo.XmlSerializer, demo"
}
}
}
}
}
SerializerFactory
工厂类可以根据配置创建一个 ISerializer
实例。如下所示:
[TestMethod]
public void TestCreateSerializer()
{
var serializer1 = SerializerFactory.CreateSerializer();
Assert.IsNotNull(serializer1); // newtonsoft
var serializer2 = SerializerFactory.CreateSerializer("demo");
Assert.IsNotNull(serializer2); // demo
}
在使用 IOC
的环境中,通过构造注入或属性注入得到的 ISerializer
的实例对应的是指向 default 的配置项。