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


C# RuntimeType.IsDelegate方法代码示例

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


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

示例1: CreateDelegateNoSecurityCheck

        [System.Security.SecurityCritical]  // auto-generated
        internal static Delegate CreateDelegateNoSecurityCheck(RuntimeType type, Object firstArgument, MethodInfo method)
        {
            // Validate the parameters.
            if (type == null)
                throw new ArgumentNullException("type");
            if (method == null)
                throw new ArgumentNullException("method");

            Contract.EndContractBlock();

            RuntimeMethodInfo rtMethod = method as RuntimeMethodInfo;
            if (rtMethod == null)
                throw new ArgumentException(Environment.GetResourceString("Argument_MustBeRuntimeMethodInfo"), "method");

            if (!type.IsDelegate())
                throw new ArgumentException(Environment.GetResourceString("Arg_MustBeDelegate"),"type");
            
            // This API is used by the formatters when deserializing a delegate.
            // They pass us the specific target method (that was already the
            // target in a valid delegate) so we should bind with the most
            // relaxed rules available (the result will never be ambiguous, it
            // just increases the chance of success with minor (compatible)
            // signature changes). We explicitly skip security checks here --
            // we're not really constructing a delegate, we're cloning an
            // existing instance which already passed its checks.
            Delegate d = UnsafeCreateDelegate(type, rtMethod, firstArgument,
                                              DelegateBindingFlags.SkipSecurityChecks |
                                              DelegateBindingFlags.RelaxedSignature);

            if (d == null)
                throw new ArgumentException(Environment.GetResourceString("Arg_DlgtTargMeth"));

            return d;
        }
开发者ID:nlh774,项目名称:DotNetReferenceSource,代码行数:35,代码来源:Delegate.cs


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