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)); }