3

我想在我的应用程序(.NET、C#)中为正在进行的操作实现特定的上下文,以便应用程序启动和执行的代码可以访问它。

问题是上下文没有像某些 API 那样作为对象传递。

我想在 WCF 中实现类似于 OperationContext 的东西,这个静态类可以为每个操作提供其上下文。

如何实现这样的系统?

一个示例用法:

我们的应用程序加载并执行由有权访问我们 SDK 的任何人创建的第 3 方“插件”。

这样的用户代码可能如下所示:

public void SomeMethod(string a, string b)
{
    // NEEDED: something like this
    Context.Results = new Results();

    // Do some stuff here

    // Call another method (without passing Results to it)
    AnotherMethod();
}

public void AnotherMethod()
{
     // NEEDED: Access the context (Results) somehow to add more info to it.
     Context.Results.Add(something);
}

根据这个例子,我只需要一些静态的 Context 类,但我如何确保它对于我的应用程序中的每个执行操作都是唯一的?

4

1 回答 1

1

作为一种选择,如果您要在解决方案中引入像 Autofac 这样的 IoC 容器,它可以在创建对象时提供对共享上下文的访问。

有关示例,请参阅此 SO question ,该问题指向有关对象关系类型的这篇文章。它应该给你一些关于这种方法可能发生的事情的想法。

于 2012-10-16T22:39:06.733 回答