2011-02-22 20 views
5

Ben StyleCop'un büyük bir hayranıyım, hayatımı kolaylaştırıyor. Bir grup başka insan iyi kuralları düşündü ve ben de onları StyleCop'u etkinleştirerek memnuniyetle takip ediyorum. Son zamanlarda Kodlu Ui genişletilebilirlik karıştırmasını ve bu makalede rastladım edilmiştir: using ifadeleri ad alanının dışında olduğu içinC# ithalat ifadelerinin yeri, StyleCop'i mutlu etmek

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

Aşağıdaki örnek kod StyleCop mutsuz kılar. Ancak, yalnızca iki System* paketini taşıyabilirim - üçüncü bir derleme özniteliği tanımlamak için gereklidir ve bir ad alanının içine assembly: atayım.

Bu kodu yeniden düzenlemek için temiz bir yol var mı?

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; 
     } 
.... 

cevap

5

IMHO, ad boşluğunun içerisine yerleştirilen kurallar işe yaramaz ve kodu okunmasını zorlaştırır.

+1

Kesinlikle. Bu kuralı her zaman StyleCop ayarlarından kaldırırım. –

+0

Hm ... Ben senin noktanı görüyorum, ama bu kural için bir çeşit sebebi olmalı. –

+1

Bu nedenle düşünemiyorsanız, kural sizin için geçerli değildir. Ve gerçekten: Tüm kurallar mantıklı değil ve kendinize mantıklı olan ve olmayanları kontrol etmeniz gerekiyor. –

5

[assembly: UITestExtensionPackageAttribute()] özniteliğinizi Properties \ AssemblyInfo.cs dosyanıza taşıyamaz mısınız? Örnekte, yalnızca tek bir kod bloğunda örneği tutmak için [assembly:] özniteliğine sahip olduğunu düşündüğünüz makaleyi tahmin ediyorum.

Daniel ile katılıyorum - using ifadelerine sahip olmak, ad alanlarının içinde kodunuzu okumak zorlaşır.

Özniteliği AssemblyInfo.cs dosyanıza taşımanızı öneririm ve kullanımınızı sınıf dosyanızın en üstünde tutmanızı öneriyorum. Bu oldukça standart görünüyor.

Bu yardımcı olur umarız!