我正在构建Nancy的扩展,并且我不确定在哪里挂入Nancy的ApplicationStartup事件。如何订阅Nancyfx中的ApplicationStartup事件?
0
A
回答
3
如果你想在你的库安装时自动运行一些代码,那么你需要继承南希类IApplicationStartup
并编写你的实现。
https://github.com/NancyFx/Nancy/blob/master/src/Nancy/Bootstrapper/IApplicationStartup.cs
例如,对于Nancy.Raygun我做了以下内容:
public class NancyRaygunRegistration : IApplicationStartup
{
private static readonly RaygunClient Client;
static NancyRaygunRegistration()
{
var apiKey = RaygunSettings.Settings.ApiKey;
if (string.IsNullOrWhiteSpace(apiKey))
{
apiKey = ConfigurationManager.AppSettings["nr.apiKey"];
}
if (apiKey == null) return;
Client = new RaygunClient(apiKey);
}
public void Initialize(IPipelines pipelines)
{
if (Client == null) return;
var raygunItem = new PipelineItem<Func<NancyContext, Exception, Response>>("Raygun", (context, exception) =>
{
Client.SendInBackground(context, exception);
return null;
});
pipelines.OnError.AddItemToStartOfPipeline(raygunItem);
}
}
南希会自动找到IAppliationStartup
所有实现和运行它们。
其他需要考虑的事情:
IRegistrations
https://github.com/NancyFx/Nancy/blob/master/src/Nancy/Bootstrapper/IRegistrations.cs
IRequestStartup
https://github.com/NancyFx/Nancy/blob/master/src/Nancy/Bootstrapper/IRequestStartup.cs
IPipelines
https://github.com/NancyFx/Nancy/blob/master/src/Nancy/Bootstrapper/IPipelines.cs
相关问题
- 1. 如何订阅primeNg事件
- 2. 如何订阅UPnP事件
- 3. 如何订阅任务中的事件
- 4. 如何订阅PencilBlue中的事件?
- 5. 订阅事件
- 6. 订阅事件
- 7. 订阅VB.NET中的事件
- 8. 如何在Eclipse中订阅OpenProject事件?
- 9. 在javascript中订阅事件
- 10. C#事件订阅
- 11. RhinoMocks事件订阅
- 12. 订阅TeamSystem事件
- 13. 订阅FB事件
- 14. C#订阅事件
- 15. 订阅Docker事件
- 16. .NET事件 - 阻止订阅者订阅事件
- 17. 如何捕获订阅事件?
- 18. 如何认定事件已订阅FakeItEasy?
- 19. 如何取消订阅此.NET事件?
- 20. 如何订阅全球委托事件?
- 21. 对象如何订阅事件?
- 22. 订阅事件的Backgroundworker
- 23. Symfony2的从事件订阅
- 24. 订阅事件的日志
- 25. GraphQL订阅:如何根据订阅中的事件更新对象
- 26. 订阅VBA中的控件事件
- 27. 如何订阅组件中的全局事件(例如按键)
- 28. jQuery的事件订阅 - 如何让事件PARAMS
- 29. 订阅通用类中的事件
- 30. 无法订阅Angular Directive中的事件
究竟是什么你想实现什么?为了什么目的,你需要做什么?问题太模糊。 – Phill
我正在构建一个资源优化库来精简js和css文件。希望优化发生在应用程序启动时发生,但不知道如何挂钩它。 –