jjzjj

state-machine

全部标签

c# - 如何持久化实现状态模式的对象?

我是状态设计模式的新手,我找不到将对象的不同状态保存到数据库(在我的例子中是SQLServer)的合适示例。该场景与以下文章中描述的示例非常相似[几乎相同],但是我还没有找到将状态持久保存到数据库的适用解决方案。你们能推荐一个链接或举个例子吗?StatePatternUsageandSampleinC#此外:如何在运行时枚举所有不同的ConcreteState类型?例如,如果您有10个不同的状态,您是声明一个具有10个不同成员的EnumStates并为每个ConcreteState成员提供一个关联的EnumStates成员,还是通过获取ConcreteState的子类来获取所有不同的状

c# - 如何从 bbv.Common.StateMachine(现在是 Appccelerate.StateMachine)类获取当前状态?

bbv.Common.StateMachine类是我见过的最好的状态机代码。但它只缺少一件事:获取当前状态。这是一个订单跟踪系统:fsm=newActiveStateMachine();fsm.In(States.OrderCreated).On(Events.Submitted).Goto(States.WaitingForApproval);fsm.In(States.WaitingForApproval).On(Events.Reject).Goto(States.Rejected);fsm.In(States.WaitingForApproval).On(Events.Appr

c# - IAsyncStateMachine.SetStateMachine 的目的是什么?

接口(interface)IAsyncStateMachine只能由编译器使用,用于为异步方法生成状态机。接口(interface)具有SetMachineState-使用堆分配的副本(来自msdn)配置状态机。我使用ILSpy反编译代码并发现生成的状态机,并提到SetMachineState函数的实现总是空的,像这样[CompilerGenerated]privatesealedclassd__1:IAsyncStateMachine{//somefieldstoholdstatevoidIAsyncStateMachine.MoveNext(){...}[DebuggerHidde

c# - Db Connection.State Change 什么时候调用?

我有以下代码:classProgram{staticvoidMain(){varconnection=newSqlConnection("myConnectionString");connection.Open();connection.StateChange+=HandleSqlConnectionDrop;Console.WriteLine("Hi");Console.ReadLine();}privatestaticvoidHandleSqlConnectionDrop(objectconnection,StateChangeEventArgsargs){Console.Writ

c# - 错误 :- The XmlReader state should be Interactive on XDocument. 加载

我收到以下错误:-System.InvalidOperationException:TheXmlReaderstateshouldbeInteractive.atSystem.Xml.Linq.XContainer.ReadContentFrom(XmlReaderr,LoadOptionso)atSystem.Xml.Linq.XDocument.Load(XmlReaderreader,LoadOptionsoptions)在下面的代码中。谁能指出我在这里做错了什么?staticXDocumentGetContentAsXDocument(stringxmlData){XmlDoc

c# - LinqToSQL 错误 : Operation is not valid due to the current state of the object

在更新命令期间,我收到以下错误:Operationisnotvalidduetothecurrentstateoftheobject我试图从更新命令中删除一列并且它工作正常。此列是一个FK,与其他工作正常的FK相似。这是执行更新的代码:ti.NumeroTitolo=titolo.Numero;ti.RKTipoTitoloGenereTitolo=titolo.RkTipoTitoloGenereTitolo;ti.RKBanca=titolo.RkBanca;ti.DataScadenza=titolo.DataScadenza;ti.RKTipoEsito=titolo.RkTi

c# - TCP 错误代码 10061 : No connection could be made because the target machine actively refused it

很难说出这里要问什么。这个问题模棱两可、含糊不清、不完整、过于宽泛或夸夸其谈,无法以目前的形式得到合理的回答。如需帮助澄清此问题以便重新打开,visitthehelpcenter.关闭9年前。Couldnotconnecttonet.tcp://localhost:5051/user.Theconnectionattemptlastedforatimespanof00:00:02.0600206.TCPerrorcode10061:Noconnectioncouldbemadebecausethetargetmachineactivelyrefusedit127.0.0.1:5051.

c# - "Inspecting the state of an object in the debuggee of type System.Reflection.MethodBase is not supported in this context"

我不知道这个错误是什么意思。我使用的是VisualStudioforMac7.5.0社区版。我在带有ASP.NETCore的EntityFramework中使用延迟加载。publicpartialclassAdminUser{publicAdminUser(){RoleAssign=newHashSet();}publicGuidUserId{get;set;}publicstringFirstName{get;set;}publicstringLastName{get;set;}publicstringEmail{get;set;}publicstringUserName{get;s

c# - 无状态状态机库 - 适当的结构方式?

人们在使用c#无状态库时如何构建他们的代码?https://github.com/nblumhardt/stateless我特别感兴趣的是这如何与注入(inject)的依赖关系相关联,以及正确的职责和分层方法。我目前的结构包括以下内容:publicclassAccountWf{privatereadonlyAspNetUseraspNetUser;privateenumState{Unverified,VerificationRequestSent,Verfied,Registered}privateenumTrigger{VerificationRequest,Verificatio

c# - 在枚举中明确定义标志组合

我正在考虑实现一个定义游戏对象状态的枚举,我想知道我是否可以直接在枚举的定义中使用标志,而不是将对象的状态定义为标志的集合,这并不容易,状态机中使用的状态的预定义全局名称。例如,假设有5种状态:PreActivation(已创建但未开始;即futurewave中的敌人)、Active(当前正在使用;即屏幕上的敌人正在攻击您)、Paused(不再活跃,但可能会重新激活;即如果玩家使用时间卡住能力,则为敌人),DeActivated(已完成使用但仍在游戏世界中的对象;即死后遗体的敌人,如毁灭战士1和2)和ToRemove(预定要从游戏中移除的对象;即在您清除一个级别并移动到下一个级别后的敌