當前位置: 首頁>>代碼示例>>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;未經允許,請勿轉載。