【问题标题】:Adding reference to Ninject.Extensions.Interception.DynamicProxy causes Ambiguous Match Excpetion添加对 Ninject.Extensions.Interception.DynamicProxy 的引用会导致不明确的匹配异常
【发布时间】:2011-03-11 01:36:51
【问题描述】:

我已将 Ninject 配置为在 ASP.NET MVC 3 应用程序中执行 DI。这工作正常,它将正确的类注入到我的控制器中。

当我尝试添加 Ninject.Extensions.Interception 以使用我的应用程序时,我开始收到一个模棱两可的匹配异常。这只发生在我添加 Ninject.Extensions.Interception.DynamicProxy 程序集时。如果我删除这个程序集,那么它会再次运行良好。我还引用了 Ninject.Extensions.Intereception 和 Castle.Core。

请注意,我没有在应用程序中配置拦截。我只是添加一个引用,然后开始发生此错误。

我正在使用 Ninject 2.2.1.0 和 Ninject.Extensions.Interception 2.2.0.0。

private const BindingFlags DefaultBindingFlags =
    BindingFlags.Public |
    BindingFlags.NonPublic |
    BindingFlags.Instance;

public static PropertyInfo GetPropertyFromMethod( this MethodInfo method, Type implementingType )
{
    if ( !method.IsSpecialName )
    {
        return null;
    }

    return implementingType.GetProperty( method.Name.Substring( 4 ), DefaultBindingFlags );
}

堆栈跟踪:

[AmbiguousMatchException:不明确 找到匹配项。]
System.RuntimeType.GetPropertyImpl(字符串 名称、BindingFlags bindingAttr、Binder binder,类型 returnType,Type[] 类型, ParameterModifier[] 修饰符) +9402677 System.Type.GetProperty(字符串名称, BindingFlags bindingAttr) +31
Ninject.Extensions.Interception.Infrastructure.Language.ExtensionsForMethodInfo.GetPropertyFromMethod(MethodInfo 方法,类型 implementationType) 在 c:\Projects\Ninject\ninject.extensions.interception\src\Ninject.Extensions.Interception\Infrastructure\Language\ExtensionsForMethodInfo.cs:35 Ninject.Extensions.Interception.Planning.Strategies.InterceptorRegistrationStrategy.Execute(IPlan 计划)在 c:\Projects\Ninject\ninject.extensions.interception\src\Ninject.Extensions.Interception\Planning\Strategies\InterceptorRegistrationStrategy.cs:83 Ninject.Planning.c_DisplayClass3.b_1(IPlanningStrategy s) 在 c:\Projects\Ninject\ninject\src\Ninject\Planning\Planner.cs:68 Ninject.Infrastructure.Language.ExtensionsForIEnumerableOfT.Map(IEnumerable1 series, Action1 action) in c:\Projects\Ninject\ninject\src\Ninject\Infrastructure\Language\ExtensionsForIEnumerableOfT.cs:23 Ninject.Planning.Planner.GetPlan(类型 输入 c:\Projects\Ninject\ninject\src\Ninject\Planning\Planner.cs:68 Ninject.Activation.Providers.StandardProvider.Create(IContext 上下文)在 c:\Projects\Ninject\ninject\src\Ninject\Activation\Providers\StandardProvider.cs:74 Ninject.Activation.Context.Resolve() 在 c:\Projects\Ninject\ninject\src\Ninject\Activation\Context.cs:157 Ninject.KernelBase.b__7(IContext 上下文)在 c:\Projects\Ninject\ninject\src\Ninject\KernelBase.cs:375

【问题讨论】:

    标签: asp.net-mvc-3 ninject ninject-extensions ninject-interception


    【解决方案1】:

    在 Ninject.Extensions.Interception 2.2.1.0 中修复

    【讨论】:

      猜你喜欢
      • 2023-03-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-25
      • 1970-01-01
      • 2018-07-29
      • 2016-06-14
      • 2011-02-10
      相关资源
      最近更新 更多