Example #1
0
        TypeDef MyStructWithConstructor()
        {
            var methodSignature = MethodSignature.Constructor(MyStruct, Accessibility.APublic, new MethodParameter(GuidType, "id"), new MethodParameter(TypeSignature.Int32, "count"));

            var thisP  = ParameterExpression.CreateThisParam(MyStruct);
            var idP    = ParameterExpression.Create(GuidType, "id");
            var countP = ParameterExpression.Create(TypeSignature.Int32, "count");

            var method = MethodDef.Create(methodSignature, (thisP, idP, countP) =>
                                          Expression.Block(
                                              ImmutableArray.Create(
                                                  Expression.FieldAccess(MyStruct_GuidField, thisP).ReferenceAssign(idP),
                                                  Expression.FieldAccess(MyStruct_IntField, thisP).ReferenceAssign(countP)
                                                  ),
                                              result: Expression.Nop
                                              )
                                          );

            return(MyStructDef.AddMember(method));
        }