ExecuteSprocAccessor抛出“无法为类型T创建映射”错误

时间:2012-09-04 06:58:04

标签: wcf

我编写了一个过程来获取字符串作为输入并返回参数列表。我已经使用ExecuteSprocAccessor将结果映射到一个模态,该模式具有ExecuteSprocAccessor返回的属性。

详细例外:

  

System.InvalidOperationException未处理Message =无法创建   CampaignModel类型的映射。   Source = Microsoft.Practices.EnterpriseLibrary.Data StackTrace:
  在   Microsoft.Practices.EnterpriseLibrary.Data.ReflectionRowMapper 1..ctor(IDictionary 2   propertyMappings)at   Microsoft.Practices.EnterpriseLibrary.Data.MapBuilder 1.MapBuilderContext.Build() at Microsoft.Practices.EnterpriseLibrary.Data.MapBuilder 1.BuildAllProperties()   在   Microsoft.Practices.EnterpriseLibrary.Data.DatabaseExtensions.CreateSprocAccessor [TResult](数据库   database,String procedureName,IParameterMapper parameterMapper)
  在   Microsoft.Practices.EnterpriseLibrary.Data.DatabaseExtensions.ExecuteSprocAccessor [TResult](数据库   database,String procedureName,IParameterMapper parameterMapper,   Object [] parameterValues)at   SolarWinds.Services.BusinessLayer.Repositories.DataWarehouseCampaignRepository.GetCampignData(字符串   campaignId)in   C:\ P4 \ Lokesh.Ravichandru \车厂\企业服务\ MAIN \ SERVICES \ SRC \ LIB \ SolarWinds.Services.BusinessLayer \库\ DataWarehouseCampaignRepository.cs:行   28在Registration.Campaign.Test.Program.Main(String [] args)中   C:\ P4 \ Lokesh.Ravichandru \车厂\企业服务\ MAIN \ SERVICES \ Registration.Campaign.Test \的Program.cs:行   16在System.AppDomain._nExecuteAssembly(RuntimeAssembly   assembly,String [] args)at   System.AppDomain.ExecuteAssembly(String assemblyFile,Evidence   assemblySecurity,String [] args)at   Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()
  在System.Threading.ThreadHelper.ThreadStart_Context(对象状态)
  在System.Threading.ExecutionContext.Run(ExecutionContext   executionContext,ContextCallback回调,对象状态,布尔值   ignoreSyncCtx)at   System.Threading.ExecutionContext.Run(执行上下文   executionContext,ContextCallback回调,对象状态)at   System.Threading.ThreadHelper.ThreadStart()InnerException:   System.TypeInitializationException Message =类型初始值设定项   for' Microsoft.Practices.EnterpriseLibrary.Data.ReflectionRowMapper 1' threw an exception.
Source=Microsoft.Practices.EnterpriseLibrary.Data
TypeName=Microsoft.Practices.EnterpriseLibrary.Data.ReflectionRowMapper
1   StackTrace:at   Microsoft.Practices.EnterpriseLibrary.Data.ReflectionRowMapper 1..ctor(IDictionary 2   propertyMappings)InnerException:   System.IO.FileNotFoundException Message =无法加载文件   或汇编' Microsoft.Practices.Unity,Version = 2.1.505.0,   Culture = neutral,PublicKeyToken = 31bf3856ad364e35'或其中一个   依赖。系统找不到指定的文件   来源= Microsoft.Practices.EnterpriseLibrary.Data
  FileName = Microsoft.Practices.Unity,Version = 2.1.505.0,   Culture = neutral,PublicKeyToken = 31bf3856ad364e35
  FusionLog ====预绑定状态信息===日志:用户=   SWDEV \ Lokesh.RavichandruLOG:DisplayName = Microsoft.Practices.Unity,   Version = 2.1.505.0,Culture = neutral,PublicKeyToken = 31bf3856ad364e35   (完全指定)LOG:Appbase =   文件:/// C:/P4/Lokesh.Ravichandru/depot/EnterpriseServices/Main/Services/Registration.Campaign.Test/bin/Debug/LOG:   初始PrivatePath = NULLCalling程序集:   Microsoft.Practices.EnterpriseLibrary.Data,Version = 5.0.505.0,   Culture = neutral,PublicKeyToken = 31bf3856ad364e35。===日志:这个绑定   在默认加载context.LOG中启动:使用应用程序配置   文件:   C:\ P4 \ Lokesh.Ravichandru \车厂\企业服务\ MAIN \ SERVICES \ Registration.Campaign.Test \ BIN \调试\ Registration.Campaign.Test.vshost.exe.ConfigLOG:   使用主机配置文件:LOG:使用机器配置文件   从   C:\ WINDOWS \ Microsoft.NET \框架\ v4.0.30319 \ CONFIG \ machine.config.LOG:   政策后参考:Microsoft.Practices.Unity,Version = 2.1.505.0,   Culture = neutral,PublicKeyToken = 31bf3856ad364e35LOG:正在尝试   下载新的URL   文件:/// C:/P4/Lokesh.Ravichandru/depot/EnterpriseServices/Main/Services/Registration.Campaign.Test/bin/Debug/Microsoft.Practices.Unity.DLL.LOG:   试图下载新的URL   文件:/// C:/P4/Lokesh.Ravichandru/depot/EnterpriseServices/Main/Services/Registration.Campaign.Test/bin/Debug/Microsoft.Practices.Unity/Microsoft.Practices.Unity.DLL.LOG:   试图下载新的URL   文件:/// C:/P4/Lokesh.Ravichandru/depot/EnterpriseServices/Main/Services/Registration.Campaign.Test/bin/Debug/Microsoft.Practices.Unity.EXE.LOG:   试图下载新的URL   文件:/// C:/P4/Lokesh.Ravichandru/depot/EnterpriseServices/Main/Services/Registration.Campaign.Test/bin/Debug/Microsoft.Practices.Unity/Microsoft.Practices.Unity.EXE。               StackTrace:在Microsoft.Practices.EnterpriseLibrary.Data.ReflectionRowMapper`1..cctor()   的InnerException:

添加更多详情。

我尝试设置var resultMapper = MapBuilder<CampaignModel>.MapAllProperties().Build();

我在上面的行中得到了例外。

请有人说这背后的错误是什么。

1 个答案:

答案 0 :(得分:1)

问题是由于未添加以下dll的引用

Microsoft.Practices.Unity.dll,Microsoft.Practices.Unity.Configuration.dll,Microsoft.Practices.Unity.Interception.dll,Microsoft.Practices.Unity.Interception.Configuration.dll。

在已使用该库的应用程序中。

-Lokesh