public void GenerateAssemblyFile() { SerializationContext context = new SerializationContext { EmitterFlavor = EmitterFlavor.FieldBased, GeneratorOption = SerializationMethodGeneratorOption.CanDump, SerializationMethod = this._method }; AssemblyBuilder dedicatedAssemblyBuilder = AppDomain.CurrentDomain.DefineDynamicAssembly(this._assemblyName, AssemblyBuilderAccess.RunAndSave); DefaultSerializationMethodGeneratorManager.SetUpAssemblyBuilderAttributes(dedicatedAssemblyBuilder, false); (Activator.CreateInstance(typeof(Builder).MakeGenericType(new Type[] { this._rootType })) as Builder).GenerateAssembly(context, dedicatedAssemblyBuilder); }
public void TearDown() { if (_traceOn) { try { DefaultSerializationMethodGeneratorManager.DumpTo(); } finally { DefaultSerializationMethodGeneratorManager.Refresh(); } } }
/// <summary> /// Generates the serializer assembly and save it to current directory. /// </summary> public void GenerateAssemblyFile() { var context = new SerializationContext(); context.EmitterFlavor = EmitterFlavor.FieldBased; context.GeneratorOption = SerializationMethodGeneratorOption.CanDump; context.SerializationMethod = this._method; var assemblyBuilder = AppDomain.CurrentDomain.DefineDynamicAssembly(this._assemblyName, AssemblyBuilderAccess.RunAndSave); // AssemblyBuilder cannot be debugged because no PDB files (and 'dummy' source files to step). DefaultSerializationMethodGeneratorManager.SetUpAssemblyBuilderAttributes(assemblyBuilder, false); (Activator.CreateInstance(typeof(Builder <>).MakeGenericType(this._rootType)) as Builder).GenerateAssembly(context, assemblyBuilder); }
public void TearDown() { if (SerializerDebugging.DumpEnabled) { try { SerializerDebugging.Dump(); } finally { DefaultSerializationMethodGeneratorManager.Refresh(); } } SerializerDebugging.Reset(); SerializerDebugging.OnTheFlyCodeDomEnabled = false; }
private void GenerateAssemblyFile(AssemblyBuilder assemblyBuilder) { var context = new SerializationContext(); context.EmitterFlavor = EmitterFlavor.FieldBased; context.GeneratorOption = SerializationMethodGeneratorOption.CanDump; context.SerializationMethod = this._method; // AssemblyBuilder cannot be debugged because no PDB files (and 'dummy' source files to step). DefaultSerializationMethodGeneratorManager.SetUpAssemblyBuilderAttributes(assemblyBuilder, false); var generatorManager = SerializationMethodGeneratorManager.Get(assemblyBuilder); foreach (var targetType in this._targetTypes) { (Activator.CreateInstance(typeof(Builder <>).MakeGenericType(targetType)) as Builder).GenerateSerializerTo(context, generatorManager); } assemblyBuilder.Save(this._assemblyName.Name + ".dll"); }
public void TearDown() { if (SerializerDebugging.DumpEnabled && this.CanDump) { try { SerializerDebugging.Dump(); } catch (NotSupportedException ex) { Console.Error.WriteLine(ex); } finally { DefaultSerializationMethodGeneratorManager.Refresh(); } } SerializerDebugging.Reset(); SerializerDebugging.OnTheFlyCodeDomEnabled = false; }