【发布时间】:2013-12-20 01:10:36
【问题描述】:
我有一个 XML 文件,有时我想在 post/get 中访问。我不想在每次点击 post/get 路由时都加载它,因为它是特定于应用程序的。我认为我应该在引导程序中加载一个对象以存储我的数据一次并根据需要引用它,但找不到任何具体示例 - 如何实现这一点?
【问题讨论】:
我有一个 XML 文件,有时我想在 post/get 中访问。我不想在每次点击 post/get 路由时都加载它,因为它是特定于应用程序的。我认为我应该在引导程序中加载一个对象以存储我的数据一次并根据需要引用它,但找不到任何具体示例 - 如何实现这一点?
【问题讨论】:
您可以读取 XML 文件并将结果粘贴到您在应用程序启动期间在容器中注册的某个对象中。然后您的模块可以注入该对象。
也就是说;在你的引导程序中是这样的:
public class Bootstrapper : DefaultNancyBootstrapper
{
protected override void ApplicationStartup(TinyIoCContainer container, IPipelines pipelines)
{
base.ApplicationStartup(container, pipelines);
var myXmlCacheInstance = ... // read your xml file and create an object to hold it
container.Register<MyXmlCahce>(myXmlCacheInstance);
}
}
在你的模块中像这样:
public class HomeModule : NancyModule
{
public HomeModule(MyXmlCache xmlCache)
{
Get["/"] => xmlCache;
}
}
【讨论】: