C# Quartz.NET/Castle Windsor集成XmlExplorer异常

C# Quartz.NET/Castle Windsor集成XmlExplorer异常,c#,castle-windsor,quartz.net,C#,Castle Windsor,Quartz.net,下载了Quartz.NET集成项目的最新源代码以重现我遇到的错误后,我担心源SampleApp会产生相同的问题 启动程序时,我正尝试如下配置容器: var container = new WindsorContainer(new XmlInterpreter()); container.Install(FromAssembly.This()); 在到达我的quartz安装程序之前,它会失败,但以下情况除外: “设施元素需要必需的非空属性类型” 我(希望如此)将其追溯到应用程序配置的这一部分

下载了Quartz.NET集成项目的最新源代码以重现我遇到的错误后,我担心源SampleApp会产生相同的问题

启动程序时,我正尝试如下配置容器:

var container = new WindsorContainer(new XmlInterpreter());
container.Install(FromAssembly.This());
在到达我的quartz安装程序之前,它会失败,但以下情况除外:

“设施元素需要必需的非空属性类型”

我(希望如此)将其追溯到应用程序配置的这一部分(取自github源代码的SampleApp):

然而,如果我将配置更改为此,它将通过配置的此步骤,但无法注册Quartz设施的两个实例(它应该注册)

有什么建议可以让它运行起来吗


干杯。

我会让事情变成这样:

<facility id="startable.facility" type="Castle.Facilities.Startrable.StartableFacility, Castle.Windsor"/>
<facility id="quartznet" type="Namespace.Castle.QuartzFacility, Namespace">
    <globalJobListener>
        <!-- the rest-->
</facility>

希望这会有所帮助。

维基上的文档说,要注册Quartz.NET设施,请如下所示:

<castle>
  <facilities>
    <facility id="startable.facility" type="Castle.Facilities.Startable.StartableFacility, Castle.Windsor"/>
    <facility id="quartznet" type="Castle.Facilities.QuartzIntegration.QuartzFacility, Castle.Facilities.QuartzIntegration">
      <quartz>
        <item key="quartz.scheduler.instanceName">XmlConfiguredInstance</item>
        <item key="quartz.threadPool.type">Quartz.Simpl.SimpleThreadPool, Quartz</item>
        <item key="quartz.threadPool.threadCount">5</item>
        <item key="quartz.threadPool.threadPriority">Normal</item>
        <item key="quartz.plugin.xml.type">Quartz.Plugin.Xml.JobInitializationPlugin, Quartz</item>
        <item key="quartz.plugin.xml.overwriteExistingJobs">true</item>
        <item key="quartz.plugin.xml.scanInterval">10</item>
      </quartz>
    </facility>
  </facilities>
</castle>

XmlConfiguredInstance
Quartz.siml.SimpleThreadPool,Quartz
5.
正常的
Quartz.Plugin.Xml.JobInitializationPlugin,Quartz
真的
10

这是因为在Windsor 3.0中,现在设施配置需要type属性/

请尝试将代码作为文本而不是屏幕截图发布:)
<castle>
  <facilities>
    <facility id="startable.facility" type="Castle.Facilities.Startable.StartableFacility, Castle.Windsor"/>
    <facility id="quartznet" type="Castle.Facilities.QuartzIntegration.QuartzFacility, Castle.Facilities.QuartzIntegration">
      <quartz>
        <item key="quartz.scheduler.instanceName">XmlConfiguredInstance</item>
        <item key="quartz.threadPool.type">Quartz.Simpl.SimpleThreadPool, Quartz</item>
        <item key="quartz.threadPool.threadCount">5</item>
        <item key="quartz.threadPool.threadPriority">Normal</item>
        <item key="quartz.plugin.xml.type">Quartz.Plugin.Xml.JobInitializationPlugin, Quartz</item>
        <item key="quartz.plugin.xml.overwriteExistingJobs">true</item>
        <item key="quartz.plugin.xml.scanInterval">10</item>
      </quartz>
    </facility>
  </facilities>
</castle>