C# 使用配置的统一框架

C# 使用配置的统一框架,c#,design-patterns,dependency-injection,unity-container,C#,Design Patterns,Dependency Injection,Unity Container,我用C#编写了这段代码,使用的是Unity框架 static void MakeEverythingReady(UnityContainer container) { try { container.RegisterType<ICar, Maruti>("UseMaruti", new InjectionConstructor(new ResolvedParameter<MarutiEn

我用C#编写了这段代码,使用的是Unity框架

static void MakeEverythingReady(UnityContainer container)
{
        try
        {

            container.RegisterType<ICar, Maruti>("UseMaruti", 
                new InjectionConstructor(new ResolvedParameter<MarutiEngine>()));
            container.Resolve<ICar>("UseMaruti");
            container.RegisterType<IEngine, MarutiEngine>("UseMarutiEngine");
            container.Resolve<IEngine>("UseMarutiEngine");
        }
        catch (Exception ex)
        {
            Console.WriteLine(ex.Message);
        }
    }
这里我们有两个程序集UnityExample是一个控制台,UnityCar是一个具有所有接口和具体实现的dll。此配置文件是UnityExample的app.config

它正在引发配置异常--


有什么线索吗?

我以前见过这个问题。不幸的是,我无法像我预期的那样解决它。 对我来说,解决方案是从配置中删除typeConfig元素。 所以我想,如果您将app.config修改为此,它应该可以工作:

<type type="UnityCar.ICar" mapTo="UnityCar.Maruti" name="UseMaruti">
        <constructor>
          <param name="UseMarutiEngine" parameterType="UnityCar.IEngine">
            <dependency/>>
          </param>
        </constructor>
</type>

>

引发了什么异常?请在您的问题中添加信息以获得合格答案您的容器名称(“containerOne”)似乎没有在Unity配置文件中定义(我在这里看到“containerCar”)。可能是问题吗?谢谢David,很好的回答,我已经尝试过将其更改为ContainerCar,但仍然会出现这个typeConfig错误。
UnityConfigurationSection section = (UnityConfigurationSection)ConfigurationManager.GetSection("unity");
section.Configure(container, "containerCar");
Unrecognized element 'typeConfig'
<type type="UnityCar.ICar" mapTo="UnityCar.Maruti" name="UseMaruti">
        <constructor>
          <param name="UseMarutiEngine" parameterType="UnityCar.IEngine">
            <dependency/>>
          </param>
        </constructor>
</type>