温莎城堡3.1缺失方法异常

本文关键字:方法 异常 城堡 | 更新日期: 2023-09-27 17:49:01

尝试从测试程序集中安装所有独立的安装程序时会抛出

 "`{"Method not found: 'Castle.MicroKernel.Registration.ComponentRegistration1<!0> Castle.MicroKernel.Registration.ComponentRegistration1.DependsOn(Castle.MicroKernel.Registration.Dependency)'."}`" 

尽管代码在控制台应用程序/windows服务中完美运行,并且两个项目的引用是相同的:

Castle.Core
Castle.Facilities.FactorySupport
Castle.Facilities.Logging
Castle.Facilities.QuartzIntegration
Castle.Services.Logging.NLogIntegration
Castle.Windsor

有谁知道为什么一个测试程序集这样调用温莎容器的构建:

   this.Container = new WindsorContainer(new XmlInterpreter())
       .Install(FromAssembly.Named("Assembly.WindowsService", 
                new CustomWindsorInstallerFactory()));

在任何引用"DependsOn"方法的代码上都失败,例如:

container.Register(
    Component
         .For<ISftpRepository, ISftpFileStoreRepository, AbstractSftpFileStoreRepository>()
         .ImplementedBy<ConcreteSftpRepository>()
         .Properties(PropertyFilter.IgnoreAll)
         .DependsOn(
              Dependency.OnConfigValue("host", config.Host),

或:

.ConfigureFor<QuartzJob>(
      x => 
      x.DependsOn(ServiceOverride.ForKey<IService>().Eq("intraService")))

注意:请注意,在主应用程序下运行时,所有的安装类都可以完美地工作,这纯粹是运行单元测试时的情景情况。

谢谢你的帮助

温莎城堡3.1缺失方法异常

当部署

时,看起来您在某个地方有一个旧版本的Windsor覆盖了新版本。