0

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, Action1アクション)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

4

1 に答える 1

1

Ninject.Extensions.Interception2.2.1.0で修正されました

于 2011-03-15T15:00:55.950 に答える