3
[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" />表示されます。フレーズを削除すると、すべて問題なくデバッグできます。しかし、私はチェックしましたが、エラーは見つかりませんでした。同時に、Spring.net の CannotLoadObjectTypeExceptionへの参照でもエラーは見つかりませんでした。

問題は少し厄介なようです。できるだけ正確に、できる限り多くの情報を提供したかったのです。

4

1 に答える 1

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"とうまくいくはずです。

spring.netをxmlconfigで使用すると、このようなことが常に発生します。通常、(巨大な)例外の最初の行が最良のヒントを与えます。xmlにエラーが表示される前に、1分間探す必要がありました。

于 2012-09-21T07:59:59.497 に答える