public IPropertyBuilder DefineProperty( string name, PropertyAttributes attributes, CallingConventions callingConvention, Type returnType, Type[] parameterTypes) { ArgumentUtility.CheckNotNullOrEmpty("name", name); ArgumentUtility.CheckNotNull("returnType", returnType); ArgumentUtility.CheckNotNull("parameterTypes", parameterTypes); var emittableReturnType = EmittableOperandProvider.GetEmittableType(returnType); var emittableParmeterTypes = parameterTypes.Select(EmittableOperandProvider.GetEmittableType).ToArray(); var propertyBuilder = _typeBuilder.DefineProperty(name, attributes, callingConvention, emittableReturnType, emittableParmeterTypes); return(new PropertyBuilderDecorator(propertyBuilder, EmittableOperandProvider)); }