首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用统一管理mongorepository

如何使用统一管理mongorepository
EN

Stack Overflow用户
提问于 2015-12-18 02:23:50
回答 1查看 451关注 0票数 1

我想使用统一来管理我的mongo存储库,但是当我尝试使用Web.configLoadConfiguration()注册它时,我得到了一个错误,我无法解密:

“System.ArgumentException”类型的异常发生在Microsoft.Practices.Unity.Configuration.dll中,但未在用户代码中处理 附加信息:在本配置部分中未定义名为"“的容器。

这是我的Global.asax

代码语言:javascript
复制
using System.Web;
using System.Web.Mvc;
using System.Web.Optimization;
using System.Web.Routing;
using Microsoft.Practices.Unity;
using Microsoft.Practices.Unity.Configuration;


namespace OOP_project
{
    public class MvcApplication : System.Web.HttpApplication
    {
        internal static readonly IUnityContainer unity = new UnityContainer();

        protected void Application_Start()
        {
            AreaRegistration.RegisterAllAreas();
            FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
            RouteConfig.RegisterRoutes(RouteTable.Routes);
            BundleConfig.RegisterBundles(BundleTable.Bundles);
            unity.LoadConfiguration();
        }
    }
}

这是我的Web.config的相关部分

代码语言:javascript
复制
<configSections>
    <!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 -->
    <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
    <section name="unity" type="Microsoft.Practices.Unity.Configuration.UnityConfigurationSection, Microsoft.Practices.Unity.Configuration"/>
  </configSections>
  <unity>
    <typeAliases>
      <typeAlias alias="string" type="System.String, mscorlib" />
    </typeAliases>
    <containers>
      <container name="container">
        <types>
          <type type="MongoRepository.MongoRepository`1, MongoRepository" mapTo="MongoRepository.MongoRepository`1, MongoRepository">
            <lifetime type="Singleton" />
            <constructor>
              <param name="connectionString" parameterType="string" value="mongodb://127.0.0.1/Blog"></param>
            </constructor>
          </type>
        </types>
      </container>
    </containers>
  </unity>

我想了解这个错误实际上意味着什么,以及如何修复它。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-12-18 10:39:45

我发现您的代码有两个问题:

首先,在调用LoadConfiguration时需要指定容器名。在配置文件中,容器名为“<container>”(在xml元素中),因此需要这样指定:

代码语言:javascript
复制
unity.LoadConfiguration("container");

或者,将配置文件中的容器名称更改为空字符串,如下所示:

代码语言:javascript
复制
<container name=""> 

第二个与你的问题没有直接关系的问题是,单身人士的生命期应该用这样的小写字母来说明:

代码语言:javascript
复制
<lifetime type="singleton" />

顺便问一下,为什么要使用配置文件来配置统一?使用配置文件配置统一是很脆弱的。例如,如果您在代码中更改了一个类名,那么它将不会在配置文件中更改。您必须手动更改它,否则应用程序就会中断。

除非您需要能够在不重新编译的情况下更改依赖项,否则您应该更愿意通过代码配置容器。

请注意,您可以通过代码进行一些注册,也可以在配置文件中进行一些注册(对于不需要重新编译就可以更改的依赖项)。您可以很容易地在网上找到如何做到这一点的资源。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34347611

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档