Asp.net mvc 同时使用Skille和structuremap

Asp.net mvc 同时使用Skille和structuremap,asp.net-mvc,asp.net-mvc-3,structuremap,glimpse,Asp.net Mvc,Asp.net Mvc 3,Structuremap,Glimpse,我正在为DI/IOC向我的项目添加structuremap。在将其添加到应用程序之前,我构建了一个演示项目来熟悉它。在演示中运行后,我开始将其移动到我的应用程序中 我还使用了“一瞥”,这似乎是自添加结构图(到目前为止)以来导致问题的唯一原因 我遵循了一个非常基本的SM教程和NuGet包,现在我甚至还没有注入任何依赖项。只是把一切都准备好 这是我的申请表 IContainer container = new Container(x => { x.For<

我正在为DI/IOC向我的项目添加structuremap。在将其添加到应用程序之前,我构建了一个演示项目来熟悉它。在演示中运行后,我开始将其移动到我的应用程序中

我还使用了“一瞥”,这似乎是自添加结构图(到目前为止)以来导致问题的唯一原因

我遵循了一个非常基本的SM教程和NuGet包,现在我甚至还没有注入任何依赖项。只是把一切都准备好

这是我的申请表

    IContainer container = new Container(x =>
    {
        x.For<IControllerActivator>().Use<StructureMapControllerActivator>();

    });

    DependencyResolver.SetResolver(new SmDependencyResolver(container));
IContainer容器=新容器(x=>
{
x、 For().Use();
});
SetResolver(新的SmDependencyResolver(容器));
如果我禁用了“窥视”,我的应用程序就会像以前一样工作。我已经准备好开始做DI了。但是如果我保持启用状态,我会得到一个空对象异常。这是堆栈跟踪,我没有太多的运气跟踪它

System.NullReferenceException: Object reference not set to an instance of an object.
at Glimpse.Mvc3.Interceptor.ActionInvokerProxyGenerationHook.NonProxyableMemberNotification(Type type, MemberInfo memberInfo)
at Castle.DynamicProxy.Contributors.MembersCollector.AcceptMethod(MethodInfo method, Boolean onlyVirtuals, IProxyGenerationHook hook)
at Castle.DynamicProxy.Contributors.ClassMembersCollector.GetMethodToGenerate(MethodInfo method, IProxyGenerationHook hook, Boolean isStandalone)
at Castle.DynamicProxy.Contributors.MembersCollector.AddMethod(MethodInfo method, IProxyGenerationHook hook, Boolean isStandalone)
at Castle.DynamicProxy.Contributors.MembersCollector.AddProperty(PropertyInfo property, IProxyGenerationHook hook)
at Castle.DynamicProxy.Contributors.MembersCollector.CollectProperties(IProxyGenerationHook hook)
at Castle.DynamicProxy.Contributors.MembersCollector.CollectMembersToProxy(IProxyGenerationHook hook)
at Castle.DynamicProxy.Contributors.ClassProxyTargetContributor.<CollectElementsToProxyInternal>d__2.MoveNext()
at Castle.DynamicProxy.Contributors.CompositeTypeContributor.CollectElementsToProxy(IProxyGenerationHook hook, MetaType model)
at Castle.DynamicProxy.Generators.ClassProxyGenerator.GenerateType(String name, Type[] interfaces, INamingScope namingScope)
at Castle.DynamicProxy.Generators.BaseProxyGenerator.ObtainProxyType(CacheKey cacheKey, Func`3 factory)
at Castle.DynamicProxy.ProxyGenerator.CreateClassProxy(Type classToProxy, Type[] additionalInterfacesToProxy, ProxyGenerationOptions options, Object[] constructorArguments, IInterceptor[] interceptors)
at Glimpse.Mvc3.Extensions.ControllerExtentions.TrySetActionInvoker(IController iController, IGlimpseLogger logger)
at System.Web.Mvc.MvcHandler.ProcessRequestInit(HttpContextBase httpContext, ref IController controller, ref IControllerFactory factory)
at System.Web.Mvc.MvcHandler.<>c__DisplayClass6.<BeginProcessRequest>b__2()
at System.Web.Mvc.SecurityUtil.<>c__DisplayClassb`1.<ProcessInApplicationTrust>b__a()
at System.Web.Mvc.SecurityUtil.ProcessInApplicationTrust(Func`1 func)
at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()
at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, ref Boolean completedSynchronously) 
System.NullReferenceException:对象引用未设置为对象的实例。
在scape.Mvc3.Interceptor.ActionInvokerProxyGenerationHook.NonProxyableMemberNotification(类型,MemberInfo MemberInfo)
在Castle.DynamicProxy.Contributors.MembersCollector.AcceptMethod(MethodInfo方法、仅布尔值虚拟现实、IProxyGenerationHook)
位于Castle.DynamicProxy.Contributors.ClassMembersCollector.GetMethodToGenerate(MethodInfo方法、IProxyGenerationHook、Boolean Isstandlone)
在Castle.DynamicProxy.Contributors.MembersCollector.AddMethod(MethodInfo方法、IProxyGenerationHook、Boolean IsStandlone)
位于Castle.DynamicProxy.Contributors.MembersCollector.AddProperty(PropertyInfo属性,IProxyGenerationHook)
位于Castle.DynamicProxy.Contributors.MembersCollector.CollectProperties(IProxyGenerationHook)
在Castle.DynamicProxy.Contributors.MembersCollector.CollectMembersToProxy(IProxyGenerationHook)
在Castle.DynamicProxy.Contributors.ClassProxyTargetContributor.d_u2.MoveNext()中
在Castle.DynamicProxy.Contributors.CompositeTypeContributor.CollectionElementsToProxy(IProxyGenerationHook,元类型模型)
在Castle.DynamicProxy.Generators.ClassProxyGenerator.GenerateType(字符串名称,类型[]接口,InMingScope namingScope)
在Castle.DynamicProxy.Generators.BaseProxyGenerator.ActainProxyType(CacheKey CacheKey,Func`3工厂)
位于Castle.DynamicProxy.ProxyGenerator.CreateClassProxy(类型classToProxy,类型[]additionalInterfacesToProxy,类型[]additionalInterfacesToProxy,ProxyGenerationOptions,对象[]构造函数参数,IInterceptor[]拦截器)
at scape.Mvc3.Extensions.controllerextensions.trysetractioninvoker(IController IController,IGlimpseLogger记录器)
在System.Web.Mvc.MvcHandler.ProcessRequestInit(HttpContextBase httpContext、ref-IController控制器、ref-IControllerFactory)
在System.Web.Mvc.MvcHandler.c_uuudisplayClass6.b_uuu2()中
在System.Web.Mvc.SecurityUtil.c__DisplayClassb`1.b__a()中
位于System.Web.Mvc.SecurityUtil.ProcessInApplicationTrust(Func`1 Func)
在System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()中
在System.Web.HttpApplication.ExecuteTEP(IExecutionStep步骤,参考布尔同步完成)

根据您的调用堆栈,看起来您使用的是旧版本的Spile


此错误已在0.85版的《一瞥》中修复,该版本现已在和上提供。升级应该可以解决您的问题。

我使用的是0.85,您指的是什么bug?请擦掉它。内核在0.85上,但我忘了更新scape.MVC3。谢谢仍然很好奇你在说什么bug,但是。你得到的错误是由于scape.MVC3 0.84中的bug造成的。该错误在scape.mvc30.85中修复。