[CannotLoadObjectTypeException: Cannot resolve type [Jtx.Service.Implement.UserManager,Jtx.Service] for object with name 'UserManager' defined in assembly [Jtx.Web, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null], resource [Jtx.Web.Config.Controllers.xml] line 3]
Spring.Objects.Factory.Support.AbstractObjectFactory.ResolveObjectType(RootObjectDefinition rod, String objectName) in c:\_prj\spring-net\trunk\src\Spring\Spring.Core\Objects\Factory\Support\AbstractObjectFactory.cs:1100
Spring.Objects.Factory.Support.DefaultListableObjectFactory.PreInstantiateSingletons() in c:\_prj\spring-net\trunk\src\Spring\Spring.Core\Objects\Factory\Support\DefaultListableObjectFactory.cs:472
Spring.Context.Support.AbstractApplicationContext.Refresh() in c:\_prj\spring-net\trunk\src\Spring\Spring.Core\Context\Support\AbstractApplicationContext.cs:1017
Spring.Context.Support.WebApplicationContext..ctor(WebApplicationContextArgs args) in c:\_prj\spring-net\trunk\src\Spring\Spring.Web\Context\Support\WebApplicationContext.cs:125
Spring.Context.Support.WebApplicationContext..ctor(String name, Boolean caseSensitive, String[] configurationLocations) in c:\_prj\spring-net\trunk\src\Spring\Spring.Web\Context\Support\WebApplicationContext.cs:82
_dynamic_Spring.Context.Support.WebApplicationContext..ctor(Object[] ) in c:\_prj\spring-net\trunk\src\Spring\Spring.Web\Caching\AspNetCache.cs:126
Spring.Reflection.Dynamic.SafeConstructor.Invoke(Object[] arguments) in c:\_prj\spring-net\trunk\src\Spring\Spring.Core\Reflection\Dynamic\DynamicConstructor.cs:116
Spring.Context.Support.RootContextInstantiator.InvokeContextConstructor(ConstructorInfo ctor) in c:\_prj\spring-net\trunk\src\Spring\Spring.Core\Context\Support\ContextHandler.cs:563
Spring.Context.Support.ContextInstantiator.InstantiateContext() in c:\_prj\spring-net\trunk\src\Spring\Spring.Core\Context\Support\ContextHandler.cs:508
Spring.Context.Support.ContextHandler.InstantiateContext(IApplicationContext parentContext, Object configContext, String contextName, Type contextType, Boolean caseSensitive, String[] resources) in c:\_prj\spring-net\trunk\src\Spring\Spring.Core\Context\Support\ContextHandler.cs:351
Spring.Context.Support.WebContextHandler.InstantiateContext(IApplicationContext parent, Object configContext, String contextName, Type contextType, Boolean caseSensitive, String[] resources) in c:\_prj\spring-net\trunk\src\Spring\Spring.Web\Context\Support\WebContextHandler.cs:127
Spring.Context.Support.ContextHandler.Create(Object parent, Object configContext, XmlNode section) in c:\_prj\spring-net\trunk\src\Spring\Spring.Core\Context\Support\ContextHandler.cs:289
service.xml中
<?xml version="1.0" encoding="utf-8" ?>
<objects xmlns="http://www.springframework.net">
<object id="UserManager" type="Jtx.Service.Implement.UserManager,Jtx.Service" parent="BaseTransactionManager">
<property name="CurrentRepository" ref="UserRepository"/>
</object>
</objects>
UserManager.cs
using System.Collections.Generic;
using System.Linq;
using Jtx.Domain.Entity;
namespace Jtx.Service.Implement
{
public class UserInfoManager : GenericManagerBase<User>, IUserManager
{
public IList<User> LoadAllByPage(out long total, int page, int rows, string order, string sort)
{
...
}
private string HashCode(string key)
{
...
}
public override object Save(User entity)
{
...
}
public User Get(string account)
{
...
}
public User Get(string account, string password)
{
...
}
public void Update(User entity, string password)
{
...
}
}
}
的Web.config
<!--spring-->
<spring>
<parsers>
<parser type="Spring.Data.Config.DatabaseNamespaceParser, Spring.Data"/>
<parser type="Spring.Transaction.Config.TxNamespaceParser, Spring.Data"/>
</parsers>
<context>
<!--Dao-->
<resource uri="assembly://Jtx.Dao/Jtx.Dao.Config/DaoBase.xml" />
<resource uri="assembly://Jtx.Dao/Jtx.Dao.Config/Dao.xml" />
<!--Service-->
<resource uri="assembly://Jtx.Service/Jtx.Service.Config/ServiceBase.xml" />
<resource uri="assembly://Jtx.Service/Jtx.Service.Config/Service.xml" />
<!--Web-->
<resource uri="assembly://Jtx.Web/Jtx.Web.Config/Controllers.xml" />
<resource uri="config://spring/objects"/>
</context>
<objects xmlns="http://www.springframework.net"/>
</spring>
我在vs2010的asp.net mvc3项目中使用了spring.net 1.3.2和NHibernate 3.2。
当我调试时,只有<resource uri="assembly://Jtx.Service/Jtx.Service.Config/Service.xml" />
错误。当你删除短语,然后再次调试所有确定。但我检查没有发现任何错误。
同时,我对CannotLoadObjectTypeException in Spring.net的引用也没有发现任何错误。
问题似乎有点混乱,我希望尽可能精确,尽可能多地提供信息。
答案 0 :(得分:1)
service.xml中的类型为type="Jtx.Service.Implement.UserManager,Jtx.Service"
,但usermanager.cs中的类型为UserInfoManager
。你能发现差异吗?
xml : Jtx.Service.Implement.UserManager
code: Jtx.Service.Implement.UserInfoManager
将xml更改为type="Jtx.Service.Implement.UserInfoManager, Jtx.Service"
应该可以解决问题。
当使用带有xml配置的spring.net时,这些事情总是会发生。 通常,(巨大的)异常的第一行给出了最好的提示。 在我看到xml中的错误之前,我不得不寻找一分钟。