Jason State เป็นการใช้งานเครื่องจักรของรัฐอย่างง่าย มันถูกกำหนดค่าโดยไฟล์ JSON
| บรรจุุภัณฑ์ | |
|---|---|
| jasonstate | |
| jasonstate.extension |
คำสั่งต่อไปนี้สามารถใช้ในการติดตั้ง Jasonstate และ Jasonstate.extension รันคำสั่งต่อไปนี้ในคอนโซลแพ็คเกจ
dotnet add package JasonState
dotnet add package JasonState.Extension
หรือใช้ dotnet cli
dotnet add package JasonState
dotnet add package JasonState.Extension
ก่อนอื่นคุณต้องระบุไฟล์ JSON ที่ถูกต้อง ไฟล์ JSON นี้จะต้องมีอาร์เรย์ สถานะ อาร์เรย์นี้ควรมี
วัตถุ
อาร์เรย์มี
วัตถุ ตัวอย่างของไฟล์ JSON ที่ถูกต้องสามารถพบได้ 
{
"States" : [
{
"Namespace" : " TestClient.Impls.States " ,
"Name" : " InitialState " ,
"NextState" : [
{
"Condition" : " !string.IsNullOrEmpty(FromEmail) && FromEmail.Equals( " [email protected] " ) " ,
"State" : " ValidatePaymentState "
},
{
"Condition" : " !string.IsNullOrEmpty(FromEmail) && FromEmail.Equals( " [email protected] " ) " ,
"State" : " FinalState "
}
],
"ErrorState" : " ErrorState "
},
{
"Namespace" : " TestClient.Impls.States " ,
"Name" : " ErrorState " ,
"NextState" : [
{
"Condition" : " true " ,
"State" : " FinalState "
}
],
"ErrorState" : null
},
{
"Namespace" : " TestClient.Impls.States " ,
"Name" : " FinalState " ,
"NextState" : null ,
"ErrorState" : null
}
]
} รัฐจะต้องสืบทอดจาก
และใช้งาน Execute หรือ Executeasync วิธีการกับบริบทของรัฐของคุณ คุณสามารถใช้เฟรมเวิร์กการฉีดพึ่งพาได้สำหรับการฉีดการก่อสร้าง มันจะไม่ทำลายอะไรเลย
public class InitialState : BaseState < TestStateContext >
{
public override void Execute ( TestStateContext context )
{
// do the magic
}
}Jason State อนุญาตให้คุณเพิ่มวัตถุใด ๆ ในบริบท ทุกสิ่งที่คุณต้องการในระหว่างการดำเนินการของรัฐควรอยู่ในบริบท
public class TestStateContext
{
public long CreditCardNumber { get ; set ; }
public string CardHolderName { get ; set ; }
public decimal Amount { get ; set ; }
}
public class InitialState : BaseState < TestStateContext >
{
public override void Execute ( TestStateContext context )
{
context . CreditCardNumber = "4545454545454545" ;
}
}โดยการอ้างอิง jasonstate.extension, ลงทะเบียนการพึ่งพาที่จำเป็นต่อ serviceCollection ดังนี้
serviceCollection . AddJasonState < TestStateContext > ( ) ;หรือ
serviceCollection . AddAsyncJasonState < TestStateContext > ( ) ; สามารถทดสอบได้ 
สามารถพบ asynctestclient ได้ 
ได้รับใบอนุญาตภายใต้ MIT ดูใบอนุญาตสำหรับข้อความเต็ม