【发布时间】:2017-04-20 11:03:32
【问题描述】:
我正在寻找一种简单的方法来处理我的服务器端代码中的永久状态。
有几点我需要考虑:
- 状态存储在数据库中
- 不同的对象有不同的状态,处理方式也不同
这意味着我例如。有两种不同类型的对象Models 和Parameters,这些对象中的每一个都有一个存储在我的数据库中的状态属性。
当前端调用我的公共函数之一时,我需要验证给定对象的当前状态,以查看操作是否有效。
在我的后端处理这个问题的最佳方法是什么?
最初的尝试
public class StateManager
{
bool HandleState<T>(T state);
}
有点像这样称呼
myStateManager.HandleState<ModelState>(GetStateFromDatabase(myModelId));
并像这样实现
bool HandleState<T>(T state)
{
switch(T)
{
case ModelState:
switch(state)
{
case ModelState.Ready:
return true;
}
case ParameterState:
switch(state)
{
case ParameterState.Ready:
return true;
}
}
}
上面的解决方案不起作用,因为我无法对 T 进行大小写,因为它是 Enum 类型,而不是简单类型。
我正在寻找易于扩展的东西,既具有新的状态类型,也具有新的状态值。
【问题讨论】:
-
所以回顾一下:“我如何在数据库中存储东西?”这是一个非常广泛的问题。到目前为止,您尝试过什么?
-
我阅读了我最初的想法,它显示了我想要实现的目标,但在显示的格式中是不可能的。回顾一下:我不是在寻找存储状态的方法——我已经知道了。我正在寻找一种方法来制作验证方法,当后端接收到调用时可以调用该方法以查看它是否有效执行(基于状态)
标签: c# asp.net switch-statement state backend