Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/298.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Unity:无法解析类型名或别名x。请检查配置文件并验证此类型名称_C#_.net_Dependency Injection_Unity Container - Fatal编程技术网

C# Unity:无法解析类型名或别名x。请检查配置文件并验证此类型名称

C# Unity:无法解析类型名或别名x。请检查配置文件并验证此类型名称,c#,.net,dependency-injection,unity-container,C#,.net,Dependency Injection,Unity Container,错误代码: 我现在正在抓取谷歌搜索结果/尝试调试2天,但我还没有找到任何解决方案 提及正在解决ApplicationService 我多次验证了程序集和名称空间的名称 我已经在配置文件中尝试过这个概念:,以及其他概念。 我验证了与数据库的连接。 我在VS中尝试了调试模式,但没有成功。 可能是其他一些我现在不记得的东西。 贝娄,你有我的密码,希望足够了。如果我遗漏了任何其他文件/信息,我表示歉意,并将立即编辑该帖子 iaapplicationservice.cs ApplicationServic

错误代码:

我现在正在抓取谷歌搜索结果/尝试调试2天,但我还没有找到任何解决方案

提及正在解决ApplicationService

我多次验证了程序集和名称空间的名称 我已经在配置文件中尝试过这个概念:,以及其他概念。 我验证了与数据库的连接。 我在VS中尝试了调试模式,但没有成功。 可能是其他一些我现在不记得的东西。 贝娄,你有我的密码,希望足够了。如果我遗漏了任何其他文件/信息,我表示歉意,并将立即编辑该帖子

iaapplicationservice.cs

ApplicationService.cs

UnitOfWorkFactory.cs

App.config

我怎样才能解决这个问题? 英语不是我的母语;请原谅键入错误。

请使用Unity配置架构

<unity>
   <alias alias="IUnitOfWorkFactory" type="Abc.Project.Domain.Repository.UnitOfWork.IUnitOfWorkFactory, Abc.Project.Domain.Repository" />

   <alias alias="UnitOfWorkFactory" type="Abc.Project.DataAccess.NHibernate.UnitOfWork.UnitOfWorkFactory, Abc.Project.DataAccess.NHibernate"/>

</unity>
-元素已过时,并且取决于您的Unity版本,它不再受支持。

请使用该元素创建Unity配置架构

<unity>
   <alias alias="IUnitOfWorkFactory" type="Abc.Project.Domain.Repository.UnitOfWork.IUnitOfWorkFactory, Abc.Project.Domain.Repository" />

   <alias alias="UnitOfWorkFactory" type="Abc.Project.DataAccess.NHibernate.UnitOfWork.UnitOfWorkFactory, Abc.Project.DataAccess.NHibernate"/>

</unity>
-元素已过时,并且根据您的Unity版本不再受支持。

未引用UnitOfWorkFactory的程序集。

未引用UnitOfWorkFactory的程序集

using System.Collections.Generic;
using AutoMapper;
using Microsoft.Practices.Unity;
using Abc.Project.Application.Interfaces;
using Abc.Project.Domain.Model.DTO;
using Abc.Project.Domain.Model.Poco.Entities;
using Abc.Project.Domain.Repository.UnitOfWork;
using Abc.Project.Domain.Unity;

namespace Abc.Project.Application.Services.Global
{
    public class ApplicationService : IApplicationService
    {
        public void AddFile(FileDTO fileDTO)
        {
            File file = new File
            {
                Id = fileDTO.ID,
                FileObs = fileDTO.FileObs,
                Ind = fileDTO.Ind,
                Levels = fileDTO.Levels,
            };

            using (var uow = IoC.Container.Resolve<IUnitOfWorkFactory>().Create())
            {
                uow.Context.File.Add(file);
                uow.Commit();
            }
        }
    }
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Abc.Project.Domain.Repository.UnitOfWork
{
    public interface IUnitOfWorkFactory
    {
        IUnitOfWork Create();
    }
}
using System.Data;
using System.Reflection;
using FluentNHibernate.Cfg;
using FluentNHibernate.Cfg.Db;
using NHibernate;
using NHibernate.Tool.hbm2ddl;
using Abc.Project.Domain.Repository.UnitOfWork;

namespace Abc.Project.DataAccess.NHibernate.UnitOfWork
{
    public class UnitOfWorkFactory : IUnitOfWorkFactory
    {
        private static ISessionFactory CreateSessionFactory()
        {
            return Fluently.Configure()
                .Database(MsSqlConfiguration.MsSql2008
                .ConnectionString(c => c.FromConnectionStringWithKey("FilesDB"))
                )
                .Mappings(m => m.FluentMappings.AddFromAssembly(Assembly.GetExecutingAssembly()))
                .ExposeConfiguration(cfg => new SchemaExport(cfg)
                .Create(false, false))
                .BuildSessionFactory();
        }

        public IUnitOfWork Create()
        {
            UnitOfWork UnitOfWork = new UnitOfWork(CreateSessionFactory().OpenSession());
            UnitOfWork.BeginTransaction(IsolationLevel.ReadCommitted);
            return UnitOfWork;
        }
    }
}
<?xml version="1.0"?>
<configuration>
  <configSections>
    <section name="unity" type="Microsoft.Practices.Unity.Configuration.UnityConfigurationSection, Microsoft.Practices.Unity.Configuration"/>

  </configSections>

  <system.web>
    <compilation debug="true" targetFramework="4.0" />
  </system.web>
  <connectionStrings>
    <add name="FilesDB" providerName="System.Data.SqlClient" connectionString="server=SP2010;database=FilesDB;User ID=sa;Password=password;"/>
  </connectionStrings>
  <unity xmlns="http://schemas.microsoft.com/practices/2010/unity">
    <typeAliases>
      <!-- Lifetime manager types -->
      <typeAlias alias="singlecall" type="Microsoft.Practices.Unity.TransientLifetimeManager, Microsoft.Practices.Unity"/>
      <typeAlias alias="singleton" type="Microsoft.Practices.Unity.ContainerControlledLifetimeManager, Microsoft.Practices.Unity"/>
      <typeAlias alias="external" type="Microsoft.Practices.Unity.ExternallyControlledLifetimeManager, Microsoft.Practices.Unity"/>
      <typeAlias alias="percall" type="Abc.Project.Domain.Unity.StaticPerCallLifeTimeManager, Abc.Project.Domain.Model"/>

      <!-- SERVICE APPLICATION INTERFACES-->
      <typeAlias alias="IApplicationService" type="Abc.Project.Application.Interfaces.IApplicationService, Abc.Project.Application.Interfaces"/>

      <!-- DOMAIN INTERFACES-->
      <typeAlias alias="IUnitOfWorkFactory" type="Abc.Project.Domain.Repository.UnitOfWork.IUnitOfWorkFactory, Abc.Project.Domain.Repository"/>

      <!-- CONCRETE CLASSES-->

      <!-- SERVICE APPLICATION-->
      <typeAlias alias="ApplicationService" type="Abc.Project.Application.Services.Global.ApplicationService, Abc.Project.Application.Services"/>

      <!--DATA ACCESS-->
      <typeAlias alias="UnitOfWorkFactory" type="Abc.Project.DataAccess.NHibernate.UnitOfWork.UnitOfWorkFactory, Abc.Project.DataAccess.NHibernate"/>

    </typeAliases>
    <containers>
      <container>
        <!--<extension type="Interception" />-->
        <types>

          <type type="IApplicationService" mapTo="ApplicationService">
            <lifetime type="singlecall"/>
          </type>
          <type type="IUnitOfWorkFactory" mapTo="UnitOfWorkFactory">
            <lifetime type="singleton"/>
          </type>

        </types>
      </container>
    </containers>
  </unity>

  <system.serviceModel>
    <behaviors>
      <endpointBehaviors>
        <behavior name="Abc.Project.WcfService.WcfServiceAspNetAjaxBehavior">
          <enableWebScript/>
        </behavior>
      </endpointBehaviors>
      <serviceBehaviors>
        <behavior name="metadataAndDebug">
          <serviceMetadata httpGetEnabled="true" httpGetUrl=""/>
          <serviceDebug httpHelpPageEnabled="true" includeExceptionDetailInFaults="true"/>
        </behavior>
      </serviceBehaviors>
    </behaviors>
    <serviceHostingEnvironment aspNetCompatibilityEnabled="true" multipleSiteBindingsEnabled="true"/>
    <services>
      <service name="Abc.Project.WcfService.WcfService" behaviorConfiguration="metadataAndDebug">
        <endpoint address="" behaviorConfiguration="Abc.Project.WcfService.WcfServiceAspNetAjaxBehavior" binding="webHttpBinding" contract="Abc.Project.WcfService.WcfService"/>
      </service>
    </services>
  </system.serviceModel>
  <system.webServer>
    <modules runAllManagedModulesForAllRequests="true"/>
  </system.webServer>

</configuration>
<unity>
   <alias alias="IUnitOfWorkFactory" type="Abc.Project.Domain.Repository.UnitOfWork.IUnitOfWorkFactory, Abc.Project.Domain.Repository" />

   <alias alias="UnitOfWorkFactory" type="Abc.Project.DataAccess.NHibernate.UnitOfWork.UnitOfWorkFactory, Abc.Project.DataAccess.NHibernate"/>

</unity>