当前位置: 首页>>代码示例>>C#>>正文


C# ILGenerator.EmitStoreToRef方法代码示例

本文整理汇总了C#中System.Reflection.Emit.ILGenerator.EmitStoreToRef方法的典型用法代码示例。如果您正苦于以下问题:C# ILGenerator.EmitStoreToRef方法的具体用法?C# ILGenerator.EmitStoreToRef怎么用?C# ILGenerator.EmitStoreToRef使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在System.Reflection.Emit.ILGenerator的用法示例。


在下文中一共展示了ILGenerator.EmitStoreToRef方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: GenerateMethod

        public virtual void GenerateMethod(PropertyInfo pi, MethodInfo mi, ILGenerator gen)
        {
            // Set default values for out parameters
            foreach (var par in mi.GetParameters().Where(p => p.IsOut))
            {
                var defaultAttr = par.GetCustomAttributes(typeof(SafeDefaultAttribute), true)
                    .Cast<SafeDefaultAttribute>().FirstOrDefault();

                var type = par.ParameterType.GetElementType();
                gen.EmitBestLdArg((ushort)(par.Position + 1));
                if (defaultAttr!=null)
                    defaultAttr.PushValueAction(gen);
                else
                    PushDefaultReturnValue(gen, type);
                gen.EmitStoreToRef(type);
            }

            // Set default value for return types
            if (mi.ReturnType!=typeof(void))
            {
                MemberInfo attrSource = mi;
                if (pi!=null)
                    attrSource = pi;

                var defaultAttr = attrSource.GetCustomAttributes(typeof(SafeDefaultAttribute), true)
                    .Cast<SafeDefaultAttribute>().FirstOrDefault();
                if (defaultAttr!=null)
                    defaultAttr.PushValueAction(gen);
                else
                    PushDefaultReturnValue(gen, mi.ReturnType);
            }
            gen.Emit(OpCodes.Ret);
        }
开发者ID:davidvmckay,项目名称:ProxyFoo,代码行数:33,代码来源:SafeNullProxySubjectCoder.cs

示例2: GenerateOutConversion

 public override void GenerateOutConversion(object token, Action load, IProxyModuleCoderAccess proxyModule, ILGenerator gen)
 {
     var local = (LocalBuilder)token;
     load();
     gen.Emit(OpCodes.Ldloc, local);
     _valueBinding.GenerateConversion(proxyModule, gen);
     gen.EmitStoreToRef(_fromType);
 }
开发者ID:davidvmckay,项目名称:ProxyFoo,代码行数:8,代码来源:OutParamBinding.cs


注:本文中的System.Reflection.Emit.ILGenerator.EmitStoreToRef方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。