Example #1
0
        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);
        }