Spring.net中的CannotLoadObjectTypeException

问题描述 投票:1回答:2

我在vs 2010中的asp.net 3.5项目中使用spring.net 1.3.1。我没有做任何种类的mvc东西;我需要Spring来创建和操作对象。

我已经阅读了文档,添加了Spring.Core和Spring.Web dll,引用了我的web.config就像这样:

   <sectionGroup name="spring">
    <section name="context" type="Spring.Context.Support.WebContextHandler, Spring.Web"/>
    <section name="objects" type="Spring.Context.Support.DefaultSectionHandler, Spring.Core"/>

  </sectionGroup> 
   <system.web>
     <httpModules>
        <add name="Spring" type="Spring.Context.Support.WebSupportModule, Spring.Web"/>
     </httpModules>
     <!-- no spring confi in httpHandlers-->
  </system.web>
   <spring>
    <context>
      <resource uri="~/config/clients.xml" />
    </context>
  </spring>

在clients.xml中

<?xml version="1.0" encoding="utf-8" ?>
<objects xmlns="http://www.springframework.net"> 
  <object id="CAL"  type="myrouter.clientcode.CAL, myrouter.clientcode"/>  
</objects>

在Defaults.aspx.cs中

  IApplicationContext ctx = ContextRegistry.GetContext();
  CAL calobject = (CAL)ctx.GetObject("CAL");

我正在

[[TypeLoadException:无法从字符串值'myrouter.clientcode.CAL,myrouter.clientcode'加载类型。]c:_svn \ spring-net \ tags \ spring-net-1.3.1 \ src \ Spring \ Spring.Core \ Core \ TypeResolution \ TypeResolver.cs:81中的Spring.Core.TypeResolution.TypeResolver.Resolve(String typeName)c:_svn \ spring-net \ tags \ spring-net-1.3.1 \ src \ Spring \ Spring.Core \ Core \ TypeResolution \ GenericTypeResolver.cs:97中的Spring.Core.TypeResolution.GenericTypeResolver.Resolve(String typeName)c:_svn \ spring-net \ tags \ spring-net-1.3.1 \ src \ Spring \ Spring.Core \ Core \ Core \ TypeResolution \ CachedTypeResolver.cs:107中的Spring.Core.TypeResolution.CachedTypeResolver.Resolve(String typeName)c:_svn \ spring-net \ tags \ spring-net-1.3.1 \ src \ Spring \ Spring.Core \ Core \ Core \ TypeResolution \ TypeResolutionUtils.cs:106中的Spring.Core.TypeResolution.TypeResolutionUtils.ResolveType(String typeName)c:_svn \ spring-net \ tags \ spring-net-1.3.1 \ src \ Spring \ Spring.Core \ Objects \ Factory \ Support \ AbstractObjectDefinition.cs中的Spring.Objects.Factory.Support.AbstractObjectDefinition.ResolveObjectType(): 640c:_svn \ spring-net \ tags \ spring-net-1.3.1 \ src \ Spring \ Spring.Spring.Core \ Objects \ Factory \ Support中的Spring.Objects.Factory.Support.AbstractObjectFactory.ResolveObjectType(RootObjectDefinition rod,String objectName) \ AbstractObjectFactory.cs:1096[CannotLoadObjectTypeException:无法解析文件[D:\ WORK \ Visual Studio \ Visual Studio 2010 \ Projects \ myrouter \ myrouter \ config \ clients中定义的名称为'CAL'的对象的类型[myrouter.clientcode.CAL,myrouter.clientcode]。 xml]第3行]c:_svn \ spring-net \ tags \ spring-net-1.3.1 \ src \ Spring \ Spring.Spring.Core \ Objects \ Factory \ Support中的Spring.Objects.Factory.Support.AbstractObjectFactory.ResolveObjectType(RootObjectDefinition rod,String objectName) \ AbstractObjectFactory.cs:1100c:_svn \ spring-net \ tags \ spring-net-1.3.1 \ src \ Spring \ Spring.Core \ Objects \ Factory \ Support \ DefaultListableObjectFactory.cs中的Spring.Objects.Factory.Support.DefaultListableObjectFactory.PreInstantiateSingletons() 472c:_svn \ spring-net \ tags \ spring-net-1.3.1 \ src \ Spring \ Spring.Spring \ Core \ Context \ Support \ AbstractApplicationContext.cs:1017中的Spring.Context.Support.AbstractApplicationContext.Refresh()c:_svn \ spring-net \ tags \ spring-net-1.3.1 \ src \ Spring \ Spring.Web \ Context \ Support \ WebApplicationContext.cs:125中的Spring.Context.Support.WebApplicationContext..ctor(WebApplicationContextArgs args)c._svn \ spring-net \ tags \ spring-net-1.3.1 \ src \ Spring \ Spring.Spring \ Web.Context中的Spring.Context.Support.WebApplicationContext..ctor(字符串名称,布尔大小写敏感,字符串[]配置位置) \ Support \ WebApplicationContext.cs:82_dynamic_Spring.Context.Support.WebApplicationContext..ctor(Object [])+242c:_svn \ spring-net \ tags \ spring-net-1.3.1 \ src \ Spring \ Spring.Core \ Reflection \ Dynamic \ DynamicConstructor.cs中的Spring.Reflection.Dynamic.SafeConstructor.Invoke(Object [] arguments): 116c:_svn \ spring-net \ tags \ spring-net-1.3.1 \ src \ Spring \ Spring.Core \ Context \ Support \ ContextHandler.cs:563中的Spring.Context.Support.RootContextInstantiator.InvokeContextConstructor(ConstructorInfo ctor)c:_svn \ spring-net \ tags \ spring-net-1.3.1 \ src \ Spring \ Spring.Core \ Context \ Support \ ContextHandler.cs:508中的Spring.Context.Support.ContextInstantiator.InstantiateContext()Spring.Context.Support.ContextHandler.InstantiateContext(IApplicationContext parentContext,Object configContext,String contextName,Type contextType,Boolean caseSensitive,String []资源)位于c:_svn \ spring-net \ tags \ spring-net-1.3.1 \ src \ Spring \ Spring.Core \ Context \ Support \ ContextHandler.cs:351在c:_svn \ spring-net \ tags \ spring-net-1.3.1 \ src中的Spring.Context.Support.WebContextHandler.InstantiateContext(IApplicationContext父级,Object configContext,字符串contextName,类型contextType,布尔caseSensitive,String []资源) \ Spring \ Spring.Web \ Context \ Support \ WebContextHandler.cs:129在c:_svn \ spring-net \ tags \ spring-net-1.3.1 \ src \ Spring \ Spring.Core.Context \ Support \中的Spring.Context.Support.ContextHandler.Create(Object parent,Object configContext,XmlNode section) ContextHandler.cs:289[ConfigurationErrorsException:创建上下文'spring.root'时出错:无法从字符串值'myrouter.clientcode.CAL,myrouter.clientcode'加载类型。]System.Configuration.BaseConfigurationRecord.EvaluateOne(字符串[]键,SectionInput输入,布尔值被信任,FactoryRecord factoryRecord,SectionRecord sectionRecord,对象parentResult)+202System.Configuration.BaseConfigurationRecord.Evaluate(FactoryRecord factoryRecord,SectionRecord sectionRecord,Object parentResult,Boolean getLkg,Boolean getRuntimeObject,Object&result,Object&resultRuntimeObject)+1061System.Configuration.BaseConfigurationRecord.GetSectionRecursive(字符串configKey,布尔值getLkg,布尔值checkPermission,布尔值getRuntimeObject,布尔值RequestIsHere,对象和结果,对象和resultRuntimeObject)+1431System.Configuration.BaseConfigurationRecord.GetSection(字符串configKey,布尔值getLkg,布尔值checkPermission)+56System.Configuration.BaseConfigurationRecord.GetSection(String configKey)+8System.Web.HttpContext.GetSection(字符串sectionName)+47System.Web.Configuration.HttpConfigurationSystem.GetSection(字符串sectionName)+39System.Web.Configuration.HttpConfigurationSystem.System.Configuration.Internal.IInternalConfigSystem.GetSection(String configKey)+6System.Configuration.ConfigurationManager.GetSection(字符串sectionName)+78c:_svn \ spring-net \ tags \ spring-net-1.3.1 \ src \ Spring \ Spring.Core \ Util \ ConfigurationUtils.cs:71中的Spring.Util.ConfigurationUtils.GetSection(String sectionName)c:_svn \ spring-net \ tags \ spring-net-1.3.1 \ src \ Spring \ Spring.Web \ Context \ Support \ WebApplicationContext.cs:335中的Spring.Context.Support.WebApplicationContext.GetContextInternal(String virtualPath)c:_svn \ spring-net \ tags \ spring-net-1.3.1 \ src \ Spring \ Spring.Web \ Context \ Support \ WebApplicationContext.cs:223中的Spring.Context.Support.WebApplicationContext.GetRootContext()c:_svn \ spring-net \ tags \ spring-net-1.3.1 \ src \ Spring \ Spring.Web \ Context \ Support \ WebSupportModule.cs:175中的Spring.Context.Support.WebSupportModule.Init(HttpApplication应用程序)System.Web.HttpApplication.InitModulesCommon()+65System.Web.HttpApplication.InitModules()+43System.Web.HttpApplication.InitInternal(HttpContext上下文,HttpApplicationState状态,MethodInfo []处理程序)+729System.Web.HttpApplicationFactory.GetNormalApplicationInstance(HttpContext上下文)+298System.Web.HttpApplicationFactory.GetApplicationInstance(HttpContext上下文)+107System.Web

对此帖子很抱歉;我想尽可能地精确,并提供尽可能多的信息。我想我缺少了一些东西,但无法弄清楚是什么。在asp.net的spring.net配置中HttpHandler是否必须?

c# asp.net spring.net
2个回答
3
投票

通常,此问题是您的某些错误导致的>

<object id="CAL"  type="myrouter.clientcode.CAL, myrouter.clientcode"/>  

配置。

检查/验证以下内容:

  • 名称空间myrouter.clientcode确实是CAL类所在的位置
  • 包含这种类型的程序集实际上是myrouter.clientcode
  • 这些名称空间和程序集名称在以下方面也匹配:区分大小写

0
投票

没关系,我已将其修复。我使用了错误的组装信息。

© www.soinside.com 2019 - 2024. All rights reserved.