public static void ParameterSetter_User(IDbCommand command, T obj)
{
var createParameterMethod = command.GetType().GetMethod("CreateParameter");
var addMethod = command.Parameters.GetType().GetMethod("Add", new[] {
typeof(SqlParameter) });
foreach (var property in propertyList)
{
var parameter = (IDataParameter)createParameterMethod.Invoke(command, null);
parameter.ParameterName = $"@{
property.Name.ToLower()}";
var value = property.GetValue(obj);
parameter.Value = value ?? DBNull.Value;
command.Parameters.Add(parameter);
}
}
将 ParameterSetter_User
方法的实现转换成使用 Emit 生成IL代码的方式如下所示:
public static void