예제 #1
0
        private static void EmitResolveParameter(ILGenerator il, ParameterInfo param)
        {
            ParameterAttribute attr     = GetParameterAttribute(param);
            IParameterResolver resolver = ParameterResolverMap.GetResolver(attr);

            resolver.EmitParameterResolution(il, attr, param.ParameterType);
        }
        private void EmitResolveProperty(ILGenerator il, PropertyInfo prop)
        {
            ParameterAttribute attr     = GetParameterAttribute(prop);
            IParameterResolver resolver = ParameterResolverMap.GetResolver(attr);

            resolver.EmitParameterResolution(il, attr, prop.PropertyType);
            if (prop.PropertyType.IsValueType)
            {
                il.Emit(OpCodes.Unbox_Any, prop.PropertyType);
            }
        }