ฉันได้รับคำเตือนนี้: "ไม่มีความคิดเห็น XML สำหรับประเภทหรือสมาชิกที่เปิดเผยต่อสาธารณะ"
วิธีแก้ปัญหานี้
ฉันได้รับคำเตือนนี้: "ไม่มีความคิดเห็น XML สำหรับประเภทหรือสมาชิกที่เปิดเผยต่อสาธารณะ"
วิธีแก้ปัญหานี้
คำตอบ:
5 ตัวเลือก:
#pragma warning disable 1591
เพื่อปิดการเตือนสำหรับโค้ดบางบิต (และ#pragma warning restore 1591
หลังจากนั้น)เพิ่มความคิดเห็น XML ให้กับประเภทที่เปิดเผยต่อสาธารณะและสมาชิกแน่นอน :)
///<Summary>
/// Gets the answer
///</Summary>
public int MyMethod()
{
return 42;
}
คุณต้องการ<summary>
ความคิดเห็นประเภทเหล่านี้สำหรับสมาชิกทุกคน - สิ่งเหล่านี้จะแสดงในเมนูป๊อปอัพ Intellisense ด้วย
เหตุผลที่คุณจะได้รับการแจ้งเตือนนี้เป็นเพราะคุณได้ตั้งโครงการของคุณไฟล์ xml เอกสารการส่งออก (ในการตั้งค่าของโครงการ) สิ่งนี้มีประโยชน์สำหรับไลบรารีคลาส (.dll แอสเซมบลี) ซึ่งหมายความว่าผู้ใช้ของคุณ. dll จะได้รับเอกสาร intellisense สำหรับ API ของคุณที่นั่นใน Visual Studio
ฉันขอแนะนำให้คุณรับสำเนาของGhostDoc Visual Studio AddIn ทำให้เอกสารง่ายขึ้นมาก
GhostDoc
- AddOn ที่โง่ที่สุดที่ฉันเคยเห็น มันสร้างเอกสาร ทีนี้หยุดสักครู่เพื่อคิดดู คุณต้องการให้รหัสของคุณเป็นที่เข้าใจมากขึ้นดังนั้นคุณจึงใช้เครื่องมือที่สร้างเอกสารขึ้นอยู่กับชื่อเมธอดและประเภทอาร์กิวเมนต์เท่านั้น มันสมเหตุสมผลกับคุณหรือไม่ ผู้ใช้สามารถเห็นชื่อและประเภทของข้อโต้แย้งเพิ่มความคิดเห็นDateTime date
- วันที่ไม่ได้ช่วยจริงๆ
ไม่แสดงคำเตือนสำหรับความคิดเห็น XML
(ไม่ใช่งานของฉัน แต่ฉันพบว่ามีประโยชน์ดังนั้นฉันจึงรวมบทความ & ลิงก์ไว้)
http://bernhardelbl.wordpress.com/2009/02/23/suppress-warnings-for-xml-comments/
ที่นี่ฉันจะแสดงให้คุณเห็นวิธีที่คุณสามารถระงับคำเตือนสำหรับความคิดเห็น XML หลังจากสร้าง Visual Studio
พื้นหลัง
หากคุณตรวจสอบเครื่องหมาย "ไฟล์เอกสาร XML" ในการตั้งค่าโครงการ Visual Studio ไฟล์ XML ที่มีความคิดเห็น XML ทั้งหมดจะถูกสร้างขึ้น นอกจากนี้คุณจะได้รับคำเตือนมากมายในไฟล์ที่สร้างโดยนักออกแบบเนื่องจากความคิดเห็น XML ที่ขาดหายไปหรือไม่ถูกต้อง ในขณะที่คำเตือนบางครั้งช่วยให้เราปรับปรุงและรักษาเสถียรภาพโค้ดของเราการได้รับการเตือนความคิดเห็น XML หลายร้อยเป็นเพียงความเจ็บปวด คำเตือน
ไม่มีความคิดเห็น XML สำหรับประเภทที่เปิดเผยต่อสาธารณะหรือสมาชิก… ความคิดเห็น XML บน…มีแท็กพารามิเตอร์สำหรับ '…' แต่ไม่มีพารามิเตอร์ตามชื่อพารามิเตอร์ '…' ไม่มีแท็กพารามิเตอร์ที่ตรงกันในข้อคิดเห็น XML สำหรับ '…' (แต่ ทำพารามิเตอร์อื่น ๆ ) วิธีแก้ปัญหา
คุณสามารถระงับทุกคำเตือนใน Visual Studio
คลิกขวาที่โครงการ Visual Studio / แท็บ Properties / Build
แทรกหมายเลขคำเตือนต่อไปนี้ใน "การระงับการเตือน": 1591,1572,1571,1573,1587,1570
มีอีกวิธีหนึ่งที่คุณสามารถระงับข้อความเหล่านี้ได้โดยไม่ต้องเปลี่ยนโค้ดหรือบล็อก pragma การใช้ Visual Studio - ไปที่คุณสมบัติโครงการ> สร้าง> ข้อผิดพลาดและคำเตือน> ระงับคำเตือน - ผนวก 1591 เข้ากับรายการรหัสเตือน
#pragma warning disable
ทุกที่ซึ่งน่ารำคาญ
แทรกความคิดเห็น XML ;-)
/// <summary>
/// Describe your member here.
/// </summary>
public string Something
{
get;
set;
}
สิ่งนี้อาจดูเหมือนเป็นเรื่องตลกในตอนแรก แต่มันอาจมีประโยชน์ สำหรับฉันมันเป็นประโยชน์ที่จะคิดเกี่ยวกับวิธีการที่ทำแม้สำหรับวิธีการส่วนตัว (ยกเว้นเรื่องเล็กน้อยจริง ๆ แน่นอน)
นี่เป็นเพราะมีการระบุไฟล์เอกสาร XML ในคุณสมบัติโครงการของคุณและวิธีการ / คลาสของคุณเป็นแบบสาธารณะและไม่มีเอกสารประกอบ
คุณสามารถ:
คลิกขวาที่โครงการ -> คุณสมบัติ -> แท็บ 'สร้าง' -> ยกเลิกการเลือกไฟล์เอกสาร XML
ข้อมูลสรุปของเอกสาร XML เป็นดังนี้:
/// <summary>
/// Description of the class/method/variable
/// </summary>
..declaration goes here..
ฉันต้องการเพิ่มบางสิ่งบางอย่างให้กับคำตอบที่แสดงไว้ที่นี่:
ตามที่ Isak ชี้ให้เห็นเอกสาร XML นั้นมีประโยชน์สำหรับ Class Library เนื่องจากเป็น Intellisense ให้กับผู้ใช้ทั่วไปภายใน Visual Studio ดังนั้นวิธีแก้ปัญหาที่ง่ายและถูกต้องคือเพียงแค่ปิดเอกสารสำหรับโครงการระดับบนสุดใด ๆ (เช่น UI ฯลฯ ) ซึ่งจะไม่ถูกนำไปใช้นอกโครงการของตัวเอง
นอกจากนี้ฉันต้องการที่จะชี้ให้เห็นว่าคำเตือนเป็นการแสดงออกถึงสมาชิกที่มองเห็นได้อย่างเปิดเผยเท่านั้น ดังนั้นหากคุณตั้งค่าไลบรารีคลาสของคุณให้เปิดเผยเฉพาะสิ่งที่ต้องการคุณสามารถทำได้โดยไม่ต้องมีเอกสารprivate
และinternal
สมาชิก
ฉันรู้ว่านี่เป็นเธรดที่เก่ามาก แต่เป็นคำตอบแรกใน google ดังนั้นฉันคิดว่าฉันจะเพิ่มข้อมูลบิตนี้:
พฤติกรรมนี้จะเกิดขึ้นเมื่อระดับการเตือนถูกตั้งไว้ที่ 4 ภายใต้ "คุณสมบัติโครงการ" -> "Build" . หากคุณไม่ต้องการข้อมูลจำนวนมากคุณสามารถตั้งค่าเป็น 3 และคุณจะกำจัดคำเตือนเหล่านี้ แน่นอนว่าการเปลี่ยนระดับการเตือนมีผลมากกว่าความคิดเห็นดังนั้นโปรดดูเอกสารหากคุณไม่แน่ใจว่าคุณจะพลาดอะไร:
https://msdn.microsoft.com/en-us/library/thxezb7y.aspx
ในโซลูชันของคุณเมื่อคุณตรวจสอบตัวเลือกเพื่อสร้างไฟล์เอกสาร XML มันจะเริ่มตรวจสอบสมาชิกสาธารณะของคุณว่ามี XMLDoc หรือไม่หากไม่มีคุณจะได้รับคำเตือนสำหรับแต่ละองค์ประกอบ หากคุณไม่ต้องการปล่อย DLL ของคุณจริงๆและคุณไม่จำเป็นต้องใช้เอกสารประกอบให้ไปที่โซลูชันของคุณสร้างส่วนและปิดใช้งานหากคุณจำเป็นต้องใช้ดังนั้นให้เติมพวกเขาและหากไม่มีความสำคัญ คุณสมบัติและเขตข้อมูลเพียงเกินพวกเขาด้วยคำสั่ง pre-compiler
#pragma warning disable 1591
คุณยังสามารถเรียกคืนคำเตือน:
#pragma warning restore 1591
การใช้งาน pragma: ใด ๆ ที่อยู่ในรหัสก่อนสถานที่ที่คุณได้รับคำเตือนคอมไพเลอร์สำหรับ ... (สำหรับไฟล์วางไว้ในส่วนหัวและคุณไม่จำเป็นต้องเปิดใช้งานอีกครั้งสำหรับคลาสเดียวล้อมรอบคลาสหรือสำหรับวิธีการล้อมรอบ วิธีการหรือ ... คุณไม่จำเป็นต้องห่อมันคุณสามารถเรียกมันและเรียกคืนมันแบบไม่ตั้งใจ (เริ่มในตอนต้นของไฟล์และสิ้นสุดในเมธอด), เขียนโค้ดนี้:
#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; }
}
}
โปรดทราบว่าคำสั่ง pragma เริ่มต้นที่จุดเริ่มต้นของบรรทัด
#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 ไม่แสดงข้อความนี้ ไม่ทราบว่าเป็นคำตอบที่ดีที่สุดหรือไม่เพราะมันยังยับยั้งคำเตือนที่มีประโยชน์
คำตอบของ Jon Skeet ใช้งานได้ดีเมื่อคุณสร้างด้วย VisualStudio อย่างไรก็ตามหากคุณกำลังสร้าง sln ผ่านทางบรรทัดคำสั่ง (ในกรณีของฉันมันคือผ่าน Ant) จากนั้นคุณอาจพบว่า msbuild ละเว้นการร้องขอ sln supression
การเพิ่มสิ่งนี้ลงในบรรทัดคำสั่ง msbuild ช่วยแก้ปัญหาสำหรับฉัน:
/p:NoWarn=1591
ไฟล์ > แก้ไข > ดูโครงการ (คลิก)
ด้านล่างของโบว์แบบเลื่อนลง (คลิกที่งานเปิด / ปัจจุบัน > คุณสมบัติ ) เปิดหน้าคุณสมบัติโครงการที่ "สร้าง" ภายใต้ "เอาท์พุท" "ยกเลิก" เอกสาร XMLช่องทำเครื่องหมาย
สร้างใหม่และไม่มีคำเตือน
คุณต้องเพิ่ม /// ความคิดเห็นสำหรับสมาชิกที่จะแสดงคำเตือน
ดูรหัสด้านล่าง
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);
}
ฉันได้รับข้อความนั้นหลังจากแนบแอททริบิวไปที่เมธอด
[webMethod]
public void DoSomething()
{
}
แต่วิธีที่ถูกต้องคือ:
[webMethod()] // Note the Parentheses
public void DoSomething()
{
}