teleware.foundation.serialization.serializers.compress - wengys/Teleware.Foundation GitHub Wiki
基于DeflateStream的IObjectSerializer包装
本库中主要的类为CompressObjectSerializerWrapper
CompressObjectSerializerWrapper
通过装饰模式将其他IObjectSerializer
序列化结果进行压缩
假设有类Foo,如果希望Foo中注入的IObjectSerializer
针对结果进行压缩,可以参考以下代码:
public class Module : Autofac.Module
{
protected override void Load(ContainerBuilder builder)
{
builder.Register<Foo>((ctx) => new Foo(ctx.ResolveNamed<IObjectSerializer>("CompressObjectSerializerWrapper"))).AsSelf();
}
}
如果希望将整个系统中所有的序列化结果进行压缩,可以参考以下代码
public class Module : Autofac.Module // 注意,此模块应该在所有IObjectSerializer实现之后注册进autofac,否则可能被其他IObjectSerializer覆盖
{
protected override void Load(ContainerBuilder builder)
{
builder.Register((ctx) => new CompressObjectSerializerWrapper(new JsonObjectSerializer())) // 此处演示包装JsonObjectSerializer
.As<IObjectSerializer>()
.SingleInstance();
}
}