asp.net - क्या WinForm/Console/VSTest एप्लिकेशन के अंदर XmlSiteMapProvider का उपयोग करने का कोई तरीका है?



unit-testing navigation (1)

मैं नहीं देखूँगा क्यों नहीं। यह केवल एक प्रदाता है जो इंटरफ़ेस लागू करता है आपको कई विशेषताओं की आवश्यकता नहीं हो सकती है, लेकिन आप जो एपीआई प्रदान करते हैं उसके लिए आप एक्सेस कर सकते हैं। आपकी WinForms स्क्रीन पहचान के लिए यूआरएल का उपयोग कर सकते हैं ताकि आप पदानुक्रम में अपना स्थान निर्धारित कर सकें।

आपको क्या करना पड़ सकता है प्रदाता के एक कस्टम कार्यान्वयन का निर्माण करना है क्योंकि वर्तमान पोर्टल की पहचान करने के लिए वर्तमान वेब अनुरोध का यूआरएल प्राप्त करने के लिए एचटीटीपीसीटीईएक्स का प्रयोग करेंगे, जबकि आपको उस वैल्यू को अलग तरह से प्राप्त करने की आवश्यकता होगी यही वह मुश्किल है जो आपके WinForm एप्लिकेशन समय पर एकाधिक विंडो प्रदर्शित कर सकता है। यदि आप जानते हैं कि एक समय में केवल एक विंडो दिखाई दे रही है, तो आप स्थैतिक मान का उपयोग कर सकते हैं जो साइटमैप एपीआई तक पहुंचने से पूर्व निर्धारित है।

अब आपको एपीआई का उपयोग करने के मूल्य पर सवाल करना होगा यदि आपको सभी काम करना है इसे सार्थक बनाने के लिए पर्याप्त लाभ नहीं हो सकता है

https://code.i-harness.com

मुझे आश्चर्य है कि क्या मानक XmlSiteMapProvider को गैर asp.net अनुप्रयोग के अंदर, WinForm / Console जैसे, या मेरे मामले में, वीएस यूनिट टेस्ट एक का उपयोग करने के लिए एक वैकल्पिक उपाय है।

निम्न कोड विफल हो जाता है, क्योंकि यह एक निजी GetConfigDocument विधि के अंदर .sitemap फ़ाइल का पथ नहीं बना सकता।

XmlSiteMapProvider provider = new XmlSiteMapProvider();
NameValueCollection providerAttributes = new NameValueCollection();
providerAttributes.Add("siteMapFile", "Web.sitemap");
provider.Initialize("XmlSiteMapReader", providerAttributes);
provider.BuildSiteMap();

मुझे लगता है सही समाधान दूसरे प्रदाता को लिखना है





provider