编写自定义IPipelineContributor
时,不清楚如何获取对所选处理程序的引用。自定义贡献者的目的是在返回结果后处置实现IDisposable
的任何处理程序。
给出以下代码示例:
public class DisposerPipelineContributor : IPipelineContributor
{
public void Initialize(IPipeline pipelineRunner)
{
pipelineRunner.Notify(MyMethod).After<KnownStages.IOperationExecution>();
}
PipelineContinuation MyMethod(ICommunicationContext arg)
{
return PipelineContinuation.Continue;
}
}
ICommunicationContext
使我们能够访问OpenRasta自己的类型系统并显示所选处理程序的类型:[OpenRasta.TypeSystem.ReflectionBased.ReflectionBasedType] = {CLR Type: MySelectedHandler}
。但是,目前尚不清楚如何获取实际用于满足请求的处理程序实例。
答案 0 :(得分:1)
伊恩,
首先,如果你想要处理对象等功能,你应该使用自己的IoC容器,大多数框架都实现了这个功能。我们将在下一个主要版本的容器中添加处理合同,因为现在或多或少可以做到这一点,而不是在我们构建2.0时。
如果您想自己在处理程序上调用IDisposable而无法切换到成熟的IoC容器,您将在ICommunicationContext.PipelineData中找到处理程序实例。