आप प्रमाणित नहीं कर सकते या Windows कार्यप्रवाह Visual Basic अभिव्यक्तियाँ हैं, तो System.Activities.ActivityBuilder का उपयोग करके बनाए गए आधार कार्यप्रवाह चलाएँ


लक्षण


जब आप सत्यापित या System.Activities.ActivityBuilder का उपयोग कर बनाया गया था एक कार्यप्रवाह निष् पादित करें में एक अनुप्रयोग Microsoft Windows संचार नींव (WCF) , निम्न अपवाद दिया गया है:

हैंडल न किया गया अपवाद: System.Activities.InvalidWorkflowException: संसाधित करते समय निम्न त्रुटियाँ उत्पन्न हुईं
वर्कफ़्लो ट्री:
'DynamicActivity': निजी कार्यान्वयन की गतिविधि ' 1: DynamicActivity' निम्न मान्यता त्रुटि है: कंपाइलर त्रुटि (त्रुटियाँ) आई संसाधन अभिव्यक्ति "variable1. नाम"।
'variable1' घोषित नहीं है। इसके सुरक्षा स्तर के कारण पहुँच योग्य नहीं हो सकता है।

कारण


यह समस्या होती है क्योंकि जब आप किसी वर्कफ़्लो सहेजें System.Activities.ActivityBuilder XAML फ़ाइल का रूट तत्व पर VisualBasic.Settings विशेषता निम्न उदाहरण में दिखाए गए के रूप में शामिल नहीं है:

< गतिविधि x: वर्ग = "CustomActivity" xmlns = "http://schemas.microsoft.com/netfx/2009/xaml/activities" xmlns:w = "clr-namespace:WorkflowConsoleApplication1; असेंबली = WorkflowConsoleApplication1" xmlns:x = "http://schemas.microsoft.com/winfx/2006/xaml" >

<Sequence>

<Sequence.Variables>

< चर x: TypeArguments "w:MyCustomType" नाम = "variable1" = / >

</Sequence.Variables>

< WriteLine पाठ = "[variable1. नाम] "/ >

</Sequence>

</Activity>

यह विशेषता संबंधित असेंबली करने के लिए व्यंजक में उपयोग किए जाने वाले प्रकार के समाधान के लिए Visual Basic अभिव्यक्तियाँ के लिए आवश् यक है.

समाधान


इस समस्या को हल करने के लिए, मैन्युअल रूप से XAML फ़ाइल का रूट तत्व में निम्न दो विशेषताएँ जोड़ें।

xmlns:mva="clr-namespace:Microsoft.VisualBasic.Activities;assembly=System.Activities"

mva:VisualBasic.Settings="Assembly संदर्भ और आयातित नामस्थान आंतरिक कार्यान्वयन के लिए"

ये दो विशेषताएँ जोड़ने के बाद, वर्कफ़्लो, जो "लक्षण" खंड में दिखाया गया है निम्नानुसार दिखाई देता है:

< गतिविधि x: वर्ग = "CustomActivity" xmlns = "http://schemas.microsoft.com/netfx/2009/xaml/activities" xmlns:w = "clr-namespace:WorkflowConsoleApplication1; असेंबली = WorkflowConsoleApplication1" xmlns:x = http://schemas.microsoft.com/ winfx/2006/xaml xmlns:mva "clr-namespace:Microsoft.VisualBasic.Activities; assembly=System.Activities" mva:VisualBasic.Settings="Assembly संदर्भ और आंतरिक कार्यान्वयन के लिए आयातित नामस्थान =" >
    <Sequence>
        <Sequence.Variables>
< चर x: TypeArguments "w:MyCustomType" नाम = "variable1" = / >
        </Sequence.Variables>
< WriteLine पाठ = "[variable1. नाम] "/ >
    </Sequence>
</Activity>

साथ ही, आप भी एक प्रोग्रामेटिक समाधान बना सकते हैं। ऐसा करने के लिए बिल्डर सेट करने के बाद निम्न कोड जोड़ें। कार्यान्वयन, निम्न नमूना कोड में दर्शाए अनुसार:


VisualBasic.SetSettingsForImplementation (बिल्डर, नया VisualBasicSettings()
            {
ImportReferences =
                {
नई VisualBasicImportReference
                    {
असेंबली "ConsoleApplication1" =
आयात = "ConsoleApplication1",
                    },
                }
            });