ASP.NETMVC3アプリケーションでDIを実行するようにNinjectを構成しました。これは正常に機能しており、適切なクラスをコントローラーに挿入します。
Ninject.Extensions.Interceptionを追加してアプリケーションを操作しようとすると、あいまいな一致例外が発生し始めます。これは、Ninject.Extensions.Interception.DynamicProxyアセンブリを追加した場合にのみ発生します。このアセンブリを削除すると、再び正常に動作します。Ninject.Extensions.IntereceptionとCastle.Coreも参照しました。
アプリケーションでインターセプトを構成していないことに注意してください。参照を追加しているところですが、このエラーが発生し始めます。
Ninject2.2.1.0とNinject.Extensions.Interception2.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(String name、BindingFlags bindingAttr、Binderバインダー、Type returnType、Type [] types、ParameterModifier []修飾子)+9402677 System.Type.GetProperty(String name、BindingFlags bindingAttr) +31
ninject.Extensions.Interception.Infrastructure.Language.ExtensionsForMethodInfo.GetPropertyFromMethod(MethodInfo method、TypeimplementationType)in c:\ Projects \ Ninject \ ninject.extensions.interception \ src \ Ninject.Extensions.Interception \ Infrastructure \ Language \ ExtensionsForMethodInfo.cs: 35 Ninject.Extensions.Interception.Planning.Strategies.InterceptorRegistrationStrategy.Execute(IPlan plan)in c:\ Projects \ Ninject \ ninject.extensions.interception \ src \ Ninject.Extensions.Interception \ Planning \ Strategies \ InterceptorRegistrationStrategy.cs:83 Ninject .Planning。<> c_DisplayClass3.b _1(IPlanningStrategy s)in c:\ Projects \ Ninject \ ninject \ src \ Ninject \ Planning \ Planner.cs:68 Ninject.Infrastructure.Language.ExtensionsForIEnumerableOfT.Map(IEnumerable1 series, Action
1アクション)c:\ Projects \ Ninject \ ninject \ src \ Ninject \ Infrastructure \ Language \ ExtensionsForIEnumerableOfT.cs:23 Ninject.Planning.Planner.GetPlan(Type type)in c:\ Projects \ Ninject \ ninject \ src \ Ninject \ Planning \ Planner.cs:68 Ninject.Activation.Providers.StandardProvider.Create(IContext context)in c:\ Projects \ Ninject \ ninject \ src \ Ninject \ Activation \ Providers \ StandardProvider.cs:74Ninject.Activation.Context。 c:\ Projects \ Ninject \ ninject \ src \ Ninject \ Activation \ Context.cs:157のResolve()c:\ Projects \ Ninject \ ninject \ src \ Ninject \ KernelBase.csのNinject.KernelBase.b__7(IContextコンテキスト) :375