Parameter names and parameter attributes are optional. Optional information for a method parameter, such as name and attributes (specified using the ParameterAttributes enum) can be defined using MethodBuilder.DefineParameter which returns a ParameterBuilder object. Optional information for a constructor parameter can be defined using ConstructorBuilder.DefineParameter which returns a ParameterBuilder object.
ParameterBuilder.SetMarshal is used to specify how the parameter is marshaled. ParameterBuilder.SetConstant is used to specify the default value for a parameter.