public ILPerformance() { var c = new Compiler <Test>(); var modules = c.Compile((i) => { return(new Container(new Member((PropertyInfo)i))); }); _ilDes = c.CompileILDeserialize(modules); _ilSer = c.CompileILSerialize(modules); _class = new Test { StringA = "a" }; _data = DConverter <Test> .Serialize(_class); foreach (var benchmark in GetType() .GetMethods() .Where(x => x.GetCustomAttributes(true) .OfType <BenchmarkAttribute>() .Count() > 0)) { benchmark.Invoke(this, null); } }
public ILConverter(BaseModule[] members, ILSerialize <T> ilSerialize, ILDeserialize <T> ilDeserialize) { Serialize = ilSerialize; Deserialize = ilDeserialize; _members = members; Members = new ReadOnlyCollection <BaseModule>(_members); }
public IConverter <T> RequestConverter <T>() where T : new() { var compiler = RequestCompiler <T>(); var compiled = compiler.Compile(_genContainer); ILSerialize <T> ilSer = null; ILDeserialize <T> ilDes = null; if (compiler.SupportsIL(compiled)) { ilSer = compiler.CompileILSerialize(compiled); ilDes = compiler.CompileILDeserialize(compiled); } return(_instantiator.Create <T>(compiled, ilSer, ilDes)); }
IConverter <T> IConverterInstanceCreator.Create <T>(BaseModule[] members, ILSerialize <T> ilSer, ILDeserialize <T> ilDes) { if (ilSer == null || ilDes == null) { return(new Converter <T>(members)); } else { return(new ILConverter <T>(members, ilSer, ilDes)); } }
public IConverter <T> Create <T>(BaseModule[] members, ILSerialize <T> ilSer, ILDeserialize <T> ilDes) where T : new() => new MockConverter <T>(_counter++);