使用 xml 结构作为 quartz.net 作业数据映射条目
Using xml structure as quartz.net job-data-map entry
我需要使用 xml 配置来配置我的 Quartz.net 作业,所以我的 quartz.xml 配置中有以下代码:
<job>
<name>my_job</name>
<group>job_group_2</group>
<description>...</description>
<job-type>Something.Somewhere.MyJob, Something.Somewhere</job-type>
<job-data-map>
<entry>
<key>sources</key>
<value>
<sources>
<source>
<partnerId>1</partnerId>
<ourPartnerId>2</ourPartnerId>
<currency>971</currency>
<path>test</path>
</source>
</sources>
</value>
</entry>
</job-data-map>
</job>
在我的代码中,我想获取 sources 标签下的 xml 结构作为字符串,像这样
public class PayOnlineImportJob : IJob
{
public Task Execute(IJobExecutionContext context)
{
var data = context.MergedJobDataMap;
var sourcesXml = data.GetString("sources");
// sourcesXml should be:
// <sources>
// <source>
// <partnerId>1</partnerId>
// <ourPartnerId>2</ourPartnerId >
// <currency>971</currency>
// <path>test</path>
// </source>
// </sources>
}
}
当我 运行 我的服务时,工作没有被解雇。但是,如果我用简单的 test 替换 value 标签内的所有内容,它确实有效。有没有办法将 xml 结构放入 value 标签中?
JobDataMap 仅存储键值对列表。
所以你想做的事是不可能的。
您可能更愿意将此结构存储在 app.config、appSettings.config 或 web.config 中,然后从那里读取它。
我需要使用 xml 配置来配置我的 Quartz.net 作业,所以我的 quartz.xml 配置中有以下代码:
<job>
<name>my_job</name>
<group>job_group_2</group>
<description>...</description>
<job-type>Something.Somewhere.MyJob, Something.Somewhere</job-type>
<job-data-map>
<entry>
<key>sources</key>
<value>
<sources>
<source>
<partnerId>1</partnerId>
<ourPartnerId>2</ourPartnerId>
<currency>971</currency>
<path>test</path>
</source>
</sources>
</value>
</entry>
</job-data-map>
</job>
在我的代码中,我想获取 sources 标签下的 xml 结构作为字符串,像这样
public class PayOnlineImportJob : IJob
{
public Task Execute(IJobExecutionContext context)
{
var data = context.MergedJobDataMap;
var sourcesXml = data.GetString("sources");
// sourcesXml should be:
// <sources>
// <source>
// <partnerId>1</partnerId>
// <ourPartnerId>2</ourPartnerId >
// <currency>971</currency>
// <path>test</path>
// </source>
// </sources>
}
}
当我 运行 我的服务时,工作没有被解雇。但是,如果我用简单的 test 替换 value 标签内的所有内容,它确实有效。有没有办法将 xml 结构放入 value 标签中?
JobDataMap 仅存储键值对列表。 所以你想做的事是不可能的。 您可能更愿意将此结构存储在 app.config、appSettings.config 或 web.config 中,然后从那里读取它。