0

我將Ninject配置爲在ASP.NET MVC 3應用程序中執行DI。這工作正常,它將適當的類注入到我的控制器中。將引用添加到Ninject.Extensions.Interception.DynamicProxy會導致模糊匹配禁止

當我嘗試添加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,活頁夾 粘結劑類型返回類型,類型[]類型, ParameterModifier []改性劑) 9402677 System.Type.GetProperty(字符串名稱, 的BindingFlags bindingAttr)31
鎳nject.Extensions.Interception.Infrastructure.Language.ExtensionsForMethodInfo.GetPropertyFromMethod(MethodInfo method,Type implementsType)in c:\ Projects \ Ninject \ ninject.extensions.interception \ src \ Ninject.Extensions.Interception \ Infrastructure \ Language \ ExtensionsForMethodInfo。 CS:35 Ninject.Extensions.Interception.Planning.Strategies.InterceptorRegistrationStrategy.Execute(IPLAN 計劃)中 C:\項目\ Ninject \ ninject.extensions.interception \ SRC \ Ninject.Extensions.Interception \規劃\策略\ InterceptorRegistrationStrategy .cs:83 Ninject.Planning。 <> C_ DisplayClass3.b _1(IPlanningStrategy 多個) C:\項目\ Ninject \ ninject \ SRC \ Ninject \規劃\ Planner.cs:68 Ninject.Infrastructure.Language.ExtensionsForIEnumerableOfT.Map(IEnumerable的1 series, Action 1動作)在 C:\項目\ Ninject \ ninject \ SRC \ Ninject \基礎設施\語言\ ExtensionsForIEnumerableOfT.cs:23 Ninject.Planning.Planner.GetPlan在 C(類型 型):\項目\ Ninject \ ninject \ SRC \ Ninject \規劃\ Planner.cs:68 Ninject.Activation.Providers.StandardProvider.Create(IContext 上下文)中 C:\項目\ Ninject \ ninject \ SRC \ Ninject \激活\提供商\ StandardProvider.cs:74 Ninject.Activation.Context.Resolve() 在 C:\項目\ Ninject \ ninject \ SRC \ Ninject \激活\ Context.cs:157 Ninject.KernelBase.b__7(IContext 上下文)中 C:\項目\ Ninject \ ninject的\ src \ Ninject \ KernelBase.cs:375

回答

1

固定在Ninject.Extensions.Interception 2.2.1.0

+0

感謝您的幫助。 – 2011-03-16 12:16:39