Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/20.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
在.NET MVC Web API中仅加载一次xml配置_.net_Asp.net Mvc 4_C# 4.0_Asp.net Web Api2 - Fatal编程技术网

在.NET MVC Web API中仅加载一次xml配置

在.NET MVC Web API中仅加载一次xml配置,.net,asp.net-mvc-4,c#-4.0,asp.net-web-api2,.net,Asp.net Mvc 4,C# 4.0,Asp.net Web Api2,我正在开发一个MVCWebAPI应用程序。现在,对于一个新的需求,我希望能够在我的解决方案中添加一些包含配置的xml文件。XML将如下所示: <utils> <util> <enable>FALSE</enable> <name>JTDS.BackFlush</name> <operation>0040</operation> &

我正在开发一个MVCWebAPI应用程序。现在,对于一个新的需求,我希望能够在我的解决方案中添加一些包含配置的xml文件。XML将如下所示:

<utils>
    <util>
        <enable>FALSE</enable>
        <name>JTDS.BackFlush</name>
        <operation>0040</operation>
        <attributes>
            <sender>SFCS</sender>
            <interface_id>JTDS</interface_id>
            <folder>C:\temp</folder>
        </attributes>
    </util>
    <util>
        <enable>TRUE</enable>
        <operation>0030</operation>
        <name>JTDS.Reprint</name>
        <attributes>
            <sender>SFCS</sender>
            <interface_id>JTDS</interface_id>
        </attributes>
    </util>
</utils>
因为这个配置没有改变,或者很少改变。我希望此配置只加载一次,最好加载到具有相同属性的对象中。当检测到此配置中的更改时,应用程序会自动重新启动,就像使用web.config一样。有没有办法做到这一点?应用程序启动是否是执行此操作的最佳位置


期待答案

只需在应用程序开始时反序列化文件。我建议您在进行这些更改时,只需重新启动站点,而不是使用一些特殊代码来检测更改。是的,您可以在global.asax.cs文件中使用应用程序启动方法。然后,您可以将数据反序列化到对象并将其缓存,也可以将其保存在某些静态字段中。我建议考虑使用JSON文件来配置应用程序。使用Newtonsoft.json反序列化json文件很容易。理想的方法是使用缓存并指定文件依赖项,以便在文件发生某些更改时更新缓存。使用Microsoft企业库很容易做到这一点