public CilClassInstance(CilClass @class, CilProgram program, CilManagedMemory managedMemory) { Class = @class; Fields = new Dictionary <string, IValue>(); foreach (var field in @class.Fields.Where(f => !f.IsStatic)) { Fields.Add(field.Name, field.Type.CreateDefaultValue(program)); } var runtimeType = program.IsValueType(@class.Name) ? Class.BuildRuntimeType(program, managedMemory) : Class.BuildRuntimeProxy(program); _externalInstance = FormatterServices.GetUninitializedObject(runtimeType); }
public override bool IsValueType(CilProgram program) { return(program.IsValueType(ClassName)); }