コード例 #1
0
        internal void Start()
        {
            assembly.Context.Register("Console", typeof(Console));
            // code.Compile(assembly);
            valueField = typeGen.DefineField("value", typeof(object), FieldAttributes.Private);
            valueField.SetCustomAttribute(typeof(DebuggerBrowsableAttribute), typeof(DebuggerBrowsableAttribute).GetInstanceCtor(typeof(DebuggerBrowsableState)), DebuggerBrowsableState.Never);
            // ctor
            var ctorParams = new ParameterInfo[] { new ParameterInfo("val", 0, typeof(object)) };
            ConstructorGenerator ctorGen = typeGen.DefineCtor(ctorParams, MethodAttributes.Public);

            ctorGen.SyntaxBody = new BlockStatement(new NodeList <Statement>
            {
                Expression.Assign(Expression.Member("value"), Expression.Parameter(ctorParams[0]))
            });

            EmitOpImplicit(typeGen);
            EmitOpAddition(typeGen);
            EmitToStringMethod();
            typeGen.CreateType();
            assembly.Save("FluidScript.Runtime.dll");
        }