Domanda

[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)
        {
            ...
        }
    }

}

enter image description here

enter image description here

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>

I'm using spring.net 1.3.2 and NHibernate 3.2 in a asp.net mvc3 project in vs2010. When I debug, only the <resource uri="assembly://Jtx.Service/Jtx.Service.Config/Service.xml" /> error.When you remove the phrase, then again to debug all ok. But I checked did not find any errors. At the same time, my reference to CannotLoadObjectTypeException in Spring.net, also found no error.

The problem seems to be a bit messy, I wanted to be as precise as possible and give as much as information that I could.

È stato utile?

Soluzione

The type in service.xml is type="Jtx.Service.Implement.UserManager,Jtx.Service", but the type in usermanager.cs is UserInfoManager. Can you spot the difference:

xml : Jtx.Service.Implement.UserManager
code: Jtx.Service.Implement.UserInfoManager

Changing the xml to type="Jtx.Service.Implement.UserInfoManager, Jtx.Service" should do the trick.

When using spring.net with xml config, these kind of things happen all the time. Usually, the first line of the (enormous) exception gives the best hint. I had to look for a minute, before I saw the error in your xml.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top