सार्वजनिक रूप से दिखने वाले प्रकार या सदस्य के लिए गुम XML टिप्पणी


381

मुझे यह चेतावनी मिल रही है: "सार्वजनिक रूप से दिखने वाले टाइप या सदस्य के लिए एक्सएमएल टिप्पणी याद आती है"।

इसे कैसे हल करें?


8
मैं इसे विजुअल स्टूडियो में भी देखता हूं। किसी को पता है कि यह चेतावनी किस सॉफ्टवेयर से आती है? शैली कॉप? एफएक्स कॉप? कोड विश्लेषण? मैं इसे कैसे बंद कर सकता हूं?
कर्नल पैनिक

जवाबों:


668

5 विकल्प:

  • प्रलेखन टिप्पणियों में भरें (महान, लेकिन समय लेने वाली)
  • टिप्पणी पीढ़ी बंद करें (परियोजना गुणों में)
  • प्रोजेक्ट प्रॉपर्टीज़ में चेतावनी को अक्षम करें ('प्रोजेक्ट प्रॉपर्टीज़' में प्रोजेक्ट प्रॉपर्टीज़ पर जाएं -> बिल्ड> "एरर्स एंड चेतावनियाँ" (सेक्शन), सप्रेस वॉर्निंग (टेक्स्टबॉक्स), 1591 (कॉमा सेपरेटेड लिस्ट) जोड़ें)। डिफ़ॉल्ट रूप से यह सक्रिय कॉन्फ़िगरेशन को बदल देगा, कॉन्फ़िगरेशन को सभी में बदलने पर विचार करें।
  • #pragma warning disable 1591कोड के कुछ बिट्स (और #pragma warning restore 1591बाद में) के लिए चेतावनी को निष्क्रिय करने के लिए उपयोग करें
  • चेतावनी को अनदेखा करें (बुरा विचार - आपको नई "वास्तविक" चेतावनी याद आएगी)

5
@ जॉन, समाधान पाया: यदि आपको एक आंशिक वर्ग के साथ gereated कोड के लिए यह चेतावनी मिलती है, तो आंशिक वर्ग के "अन्य आधे" की तलाश करें जो उत्पन्न नहीं होता है। यदि आप वहाँ एक XML टिप्पणी जोड़ते हैं, तो उत्पन्न कोड के लिए चेतावनी गायब हो जाती है। मैं एक WP7 परियोजना में XAML कोड से उत्पन्न App.gics फ़ाइल में ऐप वर्ग के लिए यह चेतावनी थी। इसे हल करने के लिए, मुझे App.xaml.cs फ़ाइल (जो उत्पन्न नहीं हुई है) में एक XML टिप्पणी जोड़नी थी।
मार्सेल डब्ल्यू

@ मार्सेलडब्ल्यू: आह, तो यह उत्पन्न सदस्यों के लिए नहीं है? या फिर वे सभी आंतरिक हैं? यह समझ में आता है ...
जॉन स्कीट

7
साथ ही, यदि आपको यह सर्विस रेफरेंस ऑटो-जनरेट कोड से चेतावनी मिल रही है, तो आप सर्विस रेफरेंस पर राइट-क्लिक कर सकते हैं, "सर्विस कॉनफिगरेशन कॉनफिगर ..." चुनें, फिर "जेनरेट क्लासेस के लिए एक्सेस लेवल" को इंटरनल में बदलें।
ली ग्रिसोम

9
यदि आप चेतावनियों को @NICKJ व्याख्या के रूप में अक्षम कर रहे हैं, तो सुनिश्चित करें कि आप इसे सभी कॉन्फ़िगरेशनों के लिए बदल रहे हैं, न कि केवल डीबग \ रिलीज़ के लिए।
अवनील

5
आप इसे एक वर्गीय विशेषता के रूप में भी जोड़ सकते हैं यदि आप पूरी कक्षा के लिए कोड को दबाना चाहते हैं: [System.Diagnostics.CodeAnalysis.SuppressMessage ("Microsoft.Usage", "CS1591")]
cr1pto

92

सार्वजनिक रूप से दिखाई देने वाले और निश्चित रूप से सदस्यों के लिए XML टिप्पणी जोड़ें :)

///<Summary>
/// Gets the answer
///</Summary>
public int MyMethod()
{
   return 42;
}

आपको <summary>सभी सदस्यों पर इन प्रकार की टिप्पणियों की आवश्यकता है - ये भी इंटेलीजेंस पॉपअप मेनू में दिखाई देते हैं।

कारण आप इस चेतावनी मिलती है क्योंकि आप उत्पादन प्रलेखन एक्सएमएल फाइल करने के लिए अपनी परियोजना निर्धारित किया है (परियोजना सेटिंग्स में) है। यह कक्षा पुस्तकालयों (.dll असेंबली) के लिए उपयोगी है, जिसका अर्थ है कि आपके .dll के उपयोगकर्ता दृश्य स्टूडियो में अपने API के लिए अंतःविषय प्रलेखन प्राप्त कर रहे हैं।

मेरा सुझाव है कि आप अपने आप को घोस्टडॉक विजुअल स्टूडियो एडइन .. की एक प्रति प्राप्त करें ।


8
घोस्टडॉक का उल्लेख करने के लिए +1। इसके बारे में कभी नहीं पता था, यह निश्चित रूप से दस्तावेजीकरण को आसान बनाता है।
विवलिन

7
चेतावनी का कारण बताने के लिए +1। बिल्ड इन द प्रोजेक्ट प्रॉपर्टीज़ (वीएस 2008) के तहत सेटिंग मिली और दस में से एक प्रोजेक्ट पर इसे बंद कर दिया, जो रहस्यमय तरीके से बिना किसी अच्छे कारण के चेक किया था।
चक विल्बर

30
-1 सिफारिश करने के लिए GhostDoc- मैंने जो बेवकूफ ऐडऑन देखा है। यह प्रलेखन उत्पन्न करता है। अब इसके बारे में सोचने के लिए एक सेकंड रुकें। आप चाहते हैं कि आपका कोड अधिक समझ में आए, इसलिए आप एक उपकरण का उपयोग करें जो केवल विधि के नाम और तर्कों के आधार पर प्रलेखन उत्पन्न करता है। क्या तुम्हें इसका कोई मतलब लगता है? उपयोगकर्ता नाम और प्रकार के तर्कों को देख सकता है, टिप्पणी में जोड़ सकता है DateTime date- तिथि वास्तव में मदद नहीं करती है।
gdoron

4
@gdoron, यह आपके लिए नहीं हो सकता है, लेकिन आप प्रलेखन GhostDoc जनरेट को संपादित कर सकते हैं, जो आपको बहुत सारे समय की बचत होगी बनाम पूरे दस्तावेज़ को खरोंच से लिखना।
जोएल मैकबेथ

3
घोस्टडॉक केवल अनुमान लगाने से अधिक करता है कि टिप्पणियों को क्या होना चाहिए - हालांकि अधिकांश समय, यह बहुत करीब है और आपको पूरी बात टाइप करने के बजाय कुछ शब्दों को संपादित करने की आवश्यकता है - और यदि आप सही ढंग से दस्तावेज बना रहे हैं (और आप शायद नहीं हैं), अधिकांश चीजों के लिए एक टेम्प्लेट है, उन्हें कैसे शब्द (गुण, निर्माता, आदि के लिए) की आवश्यकता है, और घोस्टडोक उन लोगों को डालता है - यहां तक ​​कि कूलर: यदि आप एक बच्चे की कक्षा में हैं, तो यह हो सकता है बेस क्लास से उस के साथ काम करने के लिए एक डॉक्यूमेंट में भरें, इसे हाथ से कॉपी करने के बजाय - यह अपवाद
ब्लब्स

41

XML टिप्पणियों के लिए चेतावनी को दबाएं

(मेरा काम नहीं है, लेकिन मुझे यह उपयोगी लगा, इसलिए मैंने लेख और लिंक शामिल किया है)

http://bernhardelbl.wordpress.com/2009/02/23/suppress-warnings-for-xml-comments/

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

पृष्ठभूमि

यदि आपने Visual Studio प्रोजेक्ट सेटिंग्स में "XML डॉक्यूमेंट फाइल" मार्क को चेक किया है, तो एक XML फाइल जिसमें सभी XML कमेंट बने हैं। इसके अलावा, आपको डिज़ाइन की गई फ़ाइलों में बहुत सारी चेतावनियाँ भी मिलेंगी, क्योंकि गुम या गलत XML टिप्पणियों के कारण। जबकि कभी-कभी चेतावनियां हमारे कोड को बेहतर बनाने और स्थिर करने में मदद करती हैं, सैकड़ों XML टिप्पणी चेतावनी प्राप्त करना केवल एक दर्द है। चेतावनी

सार्वजनिक रूप से दिखाई देने वाले प्रकार या सदस्य के लिए XML टिप्पणी गुम ... XML टिप्पणी पर ... '...' के लिए एक परम टैग है, लेकिन उस नाम पैरामीटर द्वारा कोई पैरामीटर नहीं है ... '' के लिए XML टिप्पणी में कोई मिलान परम टैग नहीं है ... (लेकिन अन्य मापदंडों) समाधान

आप विजुअल स्टूडियो में हर चेतावनी को दबा सकते हैं।

  • Visual Studio प्रोजेक्ट / प्रॉपर्टीज़ / बिल्ड टैब पर राइट-क्लिक करें

  • "चेतावनी को दबाएं" में निम्नलिखित चेतावनी नंबर डालें: 1591,1572,1571,1573,1587,1570


6
मुझे केवल Xml टिप्पणी चेतावनियों को दबाने के लिए 1591 जोड़ने की आवश्यकता थी।
ब्रायन बेहम

कोड सूची के लिए धन्यवाद! मैंने उन्हें एक-एक करके इकट्ठा करना शुरू कर दिया है और 3 बिल्ड पर चेतावनी के साथ मुझे पता चला है कि मुझे इसे कहीं से लेने की आवश्यकता है :)
sarh

कुछ सही नहीं है, 1591 "अप्रचलित" चेतावनियों को भी हटा देता है, लेकिन एमएस केवल टिप्पणी के बारे में बताता है कि msdn.microsoft.com/en-us/library/zk18c1w9.aspx
Pawel Cioch

मैंने MS पर सभी 1572,1571,1573,1587,1570 को भी चेक किया, और मैं उन्हें सेट नहीं करूंगा, वे अधिक विशिष्ट त्रुटियां हैं, मान लें कि आपने सेट किया है /// <सारांश> और फिर आप params में एक गलती करते हैं, आप चेतावनी मिलनी चाहिए
Pawel Cioch

26

एक और तरीका है कि आप इन संदेशों को बिना किसी कोड परिवर्तन या प्रज्ञा ब्लॉक की आवश्यकता के दबा सकते हैं। विज़ुअल स्टूडियो का उपयोग करना - प्रोजेक्ट गुणों पर जाएं> बिल्ड> त्रुटियां और चेतावनी> चेतावनी को दबाएं - चेतावनी कोड की सूची में 1591 को जोड़ें।

यहां छवि विवरण दर्ज करें


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

सबसे अच्छा जवाब यहाँ। मुझे #pragma warning disableहर जगह के साथ अपने कोडबेस को बिखरने से रोकता है, जो कि केवल कष्टप्रद है।
रोडरनर - MSFT

23

XML टिप्पणी डालें। ;-)

/// <summary>
/// Describe your member here.
/// </summary>
public string Something
{
    get;
    set;
}

यह पहली नज़र में एक मजाक जैसा लग सकता है, लेकिन यह वास्तव में उपयोगी हो सकता है। मेरे लिए यह सोचने में मददगार साबित हुआ कि निजी तरीकों के लिए भी क्या तरीके हैं (जब तक कि वास्तव में तुच्छ नहीं है, निश्चित रूप से)।


5
मैं हमेशा विधियों पर टिप्पणी करता हूं, लेकिन गुणों के लिए (जो तेनाली तरीके हैं, लेकिन आम तौर पर तुच्छ कार्यान्वयन और स्व-स्पष्ट नाम हैं) मैं ज़बरदस्त XML टिप्पणियों को जोड़ने के टेडियम और पुनरावृत्ति से बचना पसंद करता हूं।
पीटर ग्लुक

15

ऐसा इसलिए है क्योंकि आपके प्रोजेक्ट प्रॉपर्टीज में XML डॉक्यूमेंट फाइल निर्दिष्ट किया गया है और आपकी विधि / क्लास सार्वजनिक है और डॉक्यूमेंटेशन की कमी है।
आप या तो यह कर सकते हैं :

  1. XML दस्तावेज़ अक्षम करें:

    अपने प्रोजेक्ट पर राइट क्लिक करें -> गुण -> 'बिल्ड' टैब -> XML डॉक्यूमेंटेशन फ़ाइल को अनचेक करें।

  2. बैठो और दस्तावेज स्वयं लिखो!

XML प्रलेखन का सारांश इस प्रकार है:

/// <summary>
/// Description of the class/method/variable
/// </summary>
..declaration goes here..

धन्यवाद। मुझे लगता है कि इस तरह से चेतावनी को निष्क्रिय करने का सबसे सही तरीका है
रामिल अलीयेव

8

मैं यहाँ सूचीबद्ध उत्तरों में कुछ जोड़ना चाहता था:

जैसा कि इसाक ने कहा है, एक्सएमएल दस्तावेज़ क्लास लाइब्रेरीज़ के लिए उपयोगी है, क्योंकि यह विजुअल स्टूडियो के भीतर किसी भी उपभोक्ता को इंटेलीजेंस प्रदान करता है। इसलिए, एक आसान और सही समाधान किसी भी शीर्ष-स्तरीय परियोजना (जैसे UI, आदि) के लिए प्रलेखन को बंद करना है, जो कि अपने स्वयं के प्रोजेक्ट के बाहर लागू नहीं होने जा रहा है।

इसके अतिरिक्त मैं यह बताना चाहता था कि चेतावनी केवल सार्वजनिक रूप से दृश्यमान सदस्यों पर ही व्यक्त होती है । इसलिए, यदि आप अपनी कक्षा की लाइब्रेरी को केवल उसी चीज़ को उजागर करने के लिए सेटअप करते हैं, जिसकी उसे आवश्यकता है, तो आप दस्तावेज़ privateऔर internalसदस्यों के बिना प्राप्त कर सकते हैं ।


8

मुझे पता है कि यह वास्तव में एक पुराना धागा है, लेकिन यह Google पर पहली प्रतिक्रिया है, इसलिए मैंने सोचा कि मैं इस जानकारी को थोड़ा जोड़ दूंगा:

यह व्यवहार केवल तब होता है जब चेतावनी स्तर "प्रोजेक्ट गुण" के तहत 4 पर सेट होता है -> "बिल्ड" । जब तक आपको वास्तव में उस जानकारी की आवश्यकता नहीं होती है जिसे आप इसे 3 पर सेट कर सकते हैं और आपको इन चेतावनियों से छुटकारा मिल जाएगा। बेशक, चेतावनी स्तर बदलने से केवल टिप्पणियों से अधिक प्रभावित होता है, इसलिए कृपया दस्तावेज़ का संदर्भ लें यदि आप अनिश्चित हैं कि आप क्या याद कर रहे हैं:
https://msdn.microsoft.com/en-us/library/thxezb7y.aspx


7

अपने समाधान में, एक बार जब आप XML डॉक्यूमेंट फ़ाइल जेनरेट करने के विकल्प की जाँच करते हैं, तो यह आपके सार्वजनिक सदस्यों की जाँच करना शुरू कर देता है, XMLDoc होने के लिए, यदि वे नहीं करते हैं, तो आपको प्रत्येक तत्व के लिए एक चेतावनी मिलेगी। यदि आप वास्तव में अपने DLL को जारी नहीं करना चाहते हैं, और आपको दस्तावेज़ों की भी आवश्यकता नहीं है, तो अपने समाधान पर जाएं, अनुभाग बनाएं, और इसे बंद करें, अन्यथा यदि आपको इसकी आवश्यकता है, तो उन्हें भरें, और यदि महत्वहीन हैं गुण और फ़ील्ड, पूर्व-संकलक अनुदेश के साथ उन्हें पार करें #pragma warning disable 1591 आप चेतावनी को बहाल भी कर सकते हैं: #pragma warning restore 1591

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

#pragma warning disable 1591 और यदि आपको इसे पुनर्स्थापित करने की आवश्यकता है, तो उपयोग करें: #pragma warning restore 1591

यहाँ एक उदाहरण है:

using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using MongoDB.Bson;
using MongoDB.Bson.Serialization.Attributes;
using RealEstate.Entity.Models.Base;

namespace RealEstate.Models.Base
{
    public class CityVM
    {

#pragma warning disable 1591

        [Required]
        public string Id { get; set; }

        [Required]
        public string Name { get; set; }

        public List<LanguageBasedName> LanguageBasedNames { get; set; }

        [Required]
        public string CountryId { get; set; }

#pragma warning restore 1591

        /// <summary>
        /// Some countries do not have neither a State, nor a Province
        /// </summary>
        public string StateOrProvinceId { get; set; }
    }
}

ध्यान दें कि प्राग्मा निर्देश पंक्ति की शुरुआत में शुरू होता है


2
#pragma warning disable 1591
#pragma warning disable 1591
#pragma warning disable 1572
#pragma warning disable 1571
#pragma warning disable 1573
#pragma warning disable 1587
#pragma warning disable 1570

2

चेतावनी स्तर को 2 पर सेट करने से यह संदेश दब जाता है। पता नहीं कि यह सबसे अच्छा समाधान है क्योंकि यह उपयोगी चेतावनियों को भी दबा देता है।


इसके लिए चयन करने के बजाय, मुझे लगता है, xml प्रलेखन को अक्षम करने से जोखिम कम हो जाते हैं।
अजय आराध्या

2

जब आप VisualStudio के साथ निर्माण कर रहे हों तो जॉन स्कीट का जवाब बहुत अच्छा है। हालाँकि, यदि आप कमांड लाइन के माध्यम से स्लैन का निर्माण कर रहे हैं (मेरे मामले में यह चींटी के माध्यम से था) तो आप पा सकते हैं कि msbuild एसएलएन सुप्रेशन अनुरोधों की उपेक्षा करता है।

इसे msbuild कमांड लाइन में जोड़ने से मेरे लिए समस्या हल हो गई:

/p:NoWarn=1591

1

फ़ाइल > संपादित करें > प्रोजेक्ट देखें (क्लिक करें)

ड्रॉप डाउन धनुष के नीचे ( ओपन / करंट वर्क > प्रॉपर्टीज पर क्लिक करें ), "आउटपुट" के तहत "बिल्ड" पर प्रोजेक्ट प्रॉपर्टीज पेज खोला। XML दस्तावेज़ चेकबॉक्स को "अनचेक करें" ।

पुनर्निर्माण और कोई चेतावनी नहीं।


अपने सभी बिल्ड कॉन्फ़िगरेशन की जांच करना भी सुनिश्चित करें। मैंने इसे डिबग के लिए अनियंत्रित किया था लेकिन रिलीज के लिए नहीं और बहुत उलझन में था।
मैट एमएम

1
यह समाधान WebAPI प्रलेखन के मामले में एक समाधान नहीं है। आपको इस विकल्प की आवश्यकता है, लेकिन चेतावनियों को दबाएं।
पावेल कियोच

1

आपको उस सदस्य के लिए /// कमेंट जोड़ने की आवश्यकता है जिसके लिए चेतावनी प्रदर्शित की गई है।

कोड के नीचे देखें

public EventLogger()
{
    LogFile = string.Format("{0}{1}", LogFilePath, FileName);
}

यह सार्वजनिक रूप से दिखने वाले प्रकार या सदस्य के लिए गुम XML टिप्पणी की चेतावनी प्रदर्शित करता है .EventLogger () '

मैंने सदस्य के लिए टिप्पणी जोड़ दी और चेतावनी चली गई।

///<Summary>
/// To write a log <Anycomment as per your code>
///</Summary>
public EventLogger()
{
    LogFile = string.Format("{0}{1}", LogFilePath, FileName);
}

-5

मुझे वह संदेश एक विशेषता से संलग्न करने के बाद मिला है

[webMethod]
public void DoSomething()
{
}

लेकिन सही तरीका यह था:

[webMethod()] // Note the Parentheses 
public void DoSomething()
{
}
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.