2011-02-22 14 views
5

मैं स्टाइलकॉप का एक बड़ा प्रशंसक हूं, इससे मेरा जीवन आसान हो जाता है। अन्य लोगों के समूह ने अच्छे नियमों के बारे में सोचा है, और मैं स्टाइलकॉप सक्षम करके खुशी से उनका अनुसरण करता हूं। हाल ही में मैं कोडित Ui तानाना के साथ खिलवाड़ किया गया है, और इस लेख भर में आया था: नीचेसी # आयात विवरणों का स्थान, स्टाइलकॉप को खुश करना

http://blogs.msdn.com/b/gautamg/archive/2010/01/05/2-hello-world-extension-for-coded-ui-test.aspx

नमूना कोड StyleCop दुखी बनाता है क्योंकि using बयानों नाम स्थान से बाहर हैं। हालांकि, मैं केवल दो System* पैकेजों को स्थानांतरित कर सकता हूं - एक असेंबली विशेषता को परिभाषित करने के लिए तीसरा आवश्यक है, और मैं नामस्थान के अंदर assembly: फेंक नहीं सकता।

क्या इस कोड को पुन: व्यवस्थित करने का कोई साफ तरीका है?

using System; 
using System.Diagnostics; 
using Microsoft.VisualStudio.TestTools.UITest.Common; 
using Microsoft.VisualStudio.TestTools.UITest.Extension; 

// Attribute to denote that this assembly has UITest extensions. 
[assembly: UITestExtensionPackageAttribute("HelloWorldPackage", 
      typeof(UITestHelloWorldPackage.HelloWorldPackage))] 

namespace UITestHelloWorldPackage 
{ 
    internal class HelloWorldPackage : UITestExtensionPackage 
    { 
     public override object GetService(Type serviceType) 
     { 
      Trace.WriteLine("Hello, World"); 
      return null; 
     } 
.... 

उत्तर

5

आईएमएचओ, नामस्थान के अंदर उपयोग करने का नियम बेकार है और कोड को पढ़ने में कठोर बनाता है।

+1

निश्चित रूप से। मैं हमेशा स्टाइलकॉप सेटिंग्स से इस नियम को हटा देता हूं। –

+0

एचएम ... मैं आपका बिंदु देखता हूं, लेकिन उस नियम के लिए किसी प्रकार का कारण होना चाहिए। –

+1

यदि आप उस कारण से नहीं सोच सकते हैं, तो नियम आपके लिए लागू नहीं होता है। और वास्तव में: सभी नियम समझ में नहीं आते हैं और आपको खुद को जांचने की आवश्यकता है जो समझ में आता है और जो नहीं। –

5

क्या आप अपनी प्रॉपर्टी \ AssemblyInfo.cs फ़ाइल में [assembly: UITestExtensionPackageAttribute()] विशेषता नहीं ले सकते हैं? मैं अनुमान लगा रहा हूं कि आपके द्वारा संदर्भित आलेख में [assembly:] विशेषता है, उदाहरण के लिए कोड के एक ब्लॉक में उदाहरण रखने के लिए।

मैं डैनियल से सहमत हूं - using नामस्थानों के अंदर बयान आपके कोड को पढ़ने में कठोर बनाता है।

मैं आपकी असेंबलीInfo.cs फ़ाइल में विशेषता को स्थानांतरित करने की सलाह दूंगा और अपने उपयोग को अपनी कक्षा फ़ाइल के शीर्ष पर रखूंगा। यह बहुत मानक लगता है।

आशा है कि इससे मदद मिलती है!

संबंधित मुद्दे