il.Emit(OpCodes.Ldstr,prop.Name);// stack is now [parameters] [parameters] [parameter] [parameter] [name]
il.EmitCall(OpCodes.Callvirt,typeof(IDataParameter).GetProperty("ParameterName").GetSetMethod(),null);// stack is now [parameters] [parameters] [parameter]
il.Emit(OpCodes.Call,typeof(TypeHandlerCache<>).MakeGenericType(prop.PropertyType).GetMethod("SetValue"));// stack is now [parameters] [[parameters]] [parameter]
#pragma warning restore 618
}
else
{
il.EmitCall(OpCodes.Callvirt,typeof(IDataParameter).GetProperty("Value").GetSetMethod(),null);// stack is now [parameters] [[parameters]] [parameter]