استبعاد مساحة الاسم الكامل من تحليل رمز FxCop؟
-
20-08-2019 - |
سؤال
هل من الممكن استبعاد مساحة الاسم الكامل من كل تحليل FxCop في حين لا يزال تحليل بقية التجمع باستخدام SuppressMessageAttribute
؟
في حالتي الحالية، ولدي مجموعة من الطبقات التي تولدها LINQ إلى SQL والتي تتسبب في الكثير من القضايا FxCop، وبالطبع، وأنا لن تعديل كل تلك بما يتوافق مع المعايير FxCop، والكثير من هذه التعديلات سيكون ذهب إذا أنا أعيد ولدت-الطبقات.
وأنا أعلم أن FxCop لديه خيار مشروع لقمع التحليل على الشفرة التي تم إنشاؤها، ولكن لا يبدو أن تعترف الطبقات كيان والسياق الذي نشأ عن LINQ 2 SQL كما الشفرة التي تم إنشاؤها.
المحلول
إذا علامة الفصول الدراسية مع السمة [GeneratedCode]
، يمكنك استخدام العلم / ignoregeneratedcode مع FxCop كما هو موضح في هذا المنصب MSDN:
<وأ href = "http://blogs.msdn.com/b/codeanalysis/archive/2008/02/28/faq-how-do-i-prevent-fxcop-1-36-from-firing- تحذيرات ضد المولدة-code.aspx "يختلط =" noreferrer "> الأسئلة الشائعة: كيف يمكنني منع FxCop من اطلاق تحذيرات ضد الشفرة التي تم إنشاؤها
وقد تضطر إلى إضافة ملف الرمز الجديد وتنفيذ فئات جزئية جديدة هناك لإضافة السمة إلى فئات هي:
[GeneratedCode]
public partial class MainDataContext { }
وفقط تأكد من إضافة شيء إلى مساحة الاسم الصحيح عند إنشاء ملف جديد.
نصائح أخرى
[GeneratedCode] attribute
للل الطبقات.
تعديل : ل. قصدته لفئات جزئية مع نفس الأسماء، كما أوضح الجواب أخرى
استخدم في منشأ رمز سمة، هيريس في بلوق وظيفة من فريق تحليل رمز على هذا الموضوع.
وهذا في الجزء العلوي من مساحة ينبغي أن تفعل خدعة:
[GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "9.0.0.0")]
<Assembly: SuppressMessage("Microsoft.Design", _
"CA1020:AvoidNamespacesWithFewTypes", _
Scope:="namespace", _
Target:="Missico.IO")>
ووضع البيان في GlobalSuppressions.vb
في الجذر من المشروع.
وكل ما لدي هو VB سبيل المثال.