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


C# RuntimeMethodHandle.GetDeclaringType方法代码示例

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


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

示例1: GetMethodInfo

        // this method is a big perf hit, so don't call unnecessarily
        internal static MethodInfo GetMethodInfo(RuntimeMethodHandle rmh)
        {
            if(rmh.IsNullHandle())
                return null;

#if _DEBUG
            try
            {
#endif
                // Assert here because reflection will check grants and if we fail the check,
                // there will be an infinite recursion that overflows the stack.
                PermissionSet.s_fullTrust.Assert();
                RuntimeTypeHandle rth = rmh.GetDeclaringType();
                return(System.RuntimeType.GetMethodBase(rth, rmh) as MethodInfo);
#if _DEBUG
            }
            catch(Exception)
            {
                return null;
            }
#endif
        }
开发者ID:gbarnett,项目名称:shared-source-cli-2.0,代码行数:23,代码来源:securityruntime.cs

示例2: CreateDelegate

 internal static Delegate CreateDelegate(Type type, object target, RuntimeMethodHandle method)
 {
     if (type == null)
     {
         throw new ArgumentNullException("type");
     }
     if (!(type is RuntimeType))
     {
         throw new ArgumentException(Environment.GetResourceString("Argument_MustBeRuntimeType"), "type");
     }
     if (method.IsNullHandle())
     {
         throw new ArgumentNullException("method");
     }
     Type baseType = type.BaseType;
     if ((baseType == null) || (baseType != typeof(MulticastDelegate)))
     {
         throw new ArgumentException(Environment.GetResourceString("Arg_MustBeDelegate"), "type");
     }
     Delegate delegate2 = InternalAlloc(type.TypeHandle);
     if (!delegate2.BindToMethodInfo(target, method, method.GetDeclaringType(), DelegateBindingFlags.RelaxedSignature))
     {
         throw new ArgumentException(Environment.GetResourceString("Arg_DlgtTargMeth"));
     }
     return delegate2;
 }
开发者ID:randomize,项目名称:VimConfig,代码行数:26,代码来源:Delegate.cs

示例3: CreateDelegate

        //
        // internal implementation details (FCALLS and utilities)
        //

        // V2 internal API.
        internal unsafe static Delegate CreateDelegate(Type type, Object target, RuntimeMethodHandle method)
        {
            // Validate the parameters.
            if (type == null)
                throw new ArgumentNullException("type");
            if (!(type is RuntimeType))
                throw new ArgumentException(Environment.GetResourceString("Argument_MustBeRuntimeType"), "type");
            if (method.IsNullHandle())
                throw new ArgumentNullException("method");
            
            Type c = type.BaseType;
            if (c == null || c != typeof(MulticastDelegate))
                throw new ArgumentException(Environment.GetResourceString("Arg_MustBeDelegate"),"type");
            
            // Initialize the method...
            Delegate d = InternalAlloc(type.TypeHandle);
            // This is a new internal API added in Whidbey. Currently it's only
            // used by the dynamic method code to generate a wrapper delegate.
            // Allow flexible binding options since the target method is
            // unambiguously provided to us.
            if (!d.BindToMethodInfo(target, method, method.GetDeclaringType(), DelegateBindingFlags.RelaxedSignature))
                throw new ArgumentException(Environment.GetResourceString("Arg_DlgtTargMeth"));
            return d;
        }
开发者ID:gbarnett,项目名称:shared-source-cli-2.0,代码行数:29,代码来源:delegate.cs


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