我正在编写(尝试)具有以下3层的客户端服务器应用程序:
现在我正在实现对第1层上的异步调用的支持。 .NET风格的异步调用通常涉及一个对象状态,以便回调可以知道它应该从哪里继续。
最后在每个层上从3到1到.NET框架,我必须从上层封装对象状态,添加当前层的状态,然后传递到下一个下层。这意味着在每一层上编写一个不同的结构,看起来很麻烦。
struct State
{
object bizState; // cannot know higher layer state type at lower layers
object muchInfo;
}
struct BizState
{
object appState;
object muchInfo;
}
struct AppState
{
object muchInfo;
}
有没有更好更快的方法来做,而不是编写结构来包装状态?
答案 0 :(得分:1)
嗯,技术上:不;但是,这个问题有很多变通方法。考虑使用通用状态对象(转储结构),它可以具有InnerState(就像异常一样)。你也可以选择不关注状态对象(它们主要是在我们没有lambda和匿名方法的.NET早期阶段使用)而是依赖于闭包。最后你可以跳过基于事件的异步并依靠TPL。