/ / WF4 वर्कफ़्लो में चर की कस्टम दृढ़ता का प्रदर्शन कैसे करें? - वर्क-फाउंडेशन

WF4 वर्कफ़्लो में चर के कस्टम दृढ़ता को कैसे निष्पादित करें? वर्कफ़्लो-नींव

मैं डिफ़ॉल्ट दृढ़ता को ओवरराइड करना चाहूंगावर्कफ़्लो फ़ाउंडेशन 4 वर्कफ़्लो में चर और तर्कों के रूप में उपयोग की जाने वाली कस्टम ऑब्जेक्ट्स। मैं समझता हूँ कि WF4 NetDataContractSerializer का उपयोग करके कस्टम ऑब्जेक्ट्स को बनाए रखता है।

हालाँकि, मेरी वस्तुएँ साधारण POCO नहीं हैं। वे "ActiveRecord" ऑब्जेक्ट की तरह अधिक हैं, जो किसी डेटाबेस से जुड़ा हुआ है। इसलिए, मैं उन वस्तुओं को संग्रहीत करने और डेटाबेस से आवश्यकतानुसार उन वस्तुओं को लोड करने के लिए हठ प्रक्रिया को ओवरराइड करना चाहूंगा।

मैंने ISerializable लागू करने की कोशिश की है लेकिन,जाहिर है, यह काम नहीं करता है। क्या वर्कफ़्लो फाउंडेशन में एक और विस्तार बिंदु है जहां मैं प्लग कर सकता हूं ताकि मैं अपनी कस्टम ऑब्जेक्ट्स की दृढ़ता व्यवहार को बाधित और अनुकूलित कर सकूं?

उदाहरण के लिए, निम्नलिखित वस्तु की कल्पना करें:

public sealed class Entity
{
private readonly SqlConnection connection_;

public Guid Id { get; private set; }
public String Name { get; set; }

// I would like to persist this object in the database
// when the workflow "asks" for it to be persisted
// I don"t know what to write or implement in this class
}

इस वस्तु को किस प्रकार कायम रखा जा सकता हैडेटाबेस स्वचालित रूप से जब वर्कफ़्लो बनी रहती है या अनलोड होती है। मेरे मामले में, SqlConnection धारावाहिक नहीं है, इसलिए मुझे शायद कुछ कस्टम कोड लिखना चाहिए, ISerializable या कुछ और लागू करना चाहिए।

क्या कोई मुझे सही दिशा दिखा सकता है?

उत्तर:

जवाब के लिए 0 № 1

आप उपयोग कर सकते हैं PersistenceParticipant आपके लिए अतिरिक्त जानकारी प्रदान करने के लिएलगातार वर्कफ़्लो उदाहरण। PersistenceParticipant का डेटा वर्कफ़्लो के अलावा अन्य स्रोतों से आ सकता है। आप PersistenceParticipant को एक्सटेंशन के रूप में पंजीकृत करते हैं जिसे बाद में जोड़ा जा सकता है, आप उस डेटा का विस्तार कर सकते हैं जिसे संग्रहीत करने की आवश्यकता है वर्कफ़्लो उदाहरण के अनुसार