Saya mendapatkan peringatan ini: "Komentar XML tidak ada untuk tipe atau anggota yang terlihat secara publik".
Bagaimana cara mengatasinya?
Saya mendapatkan peringatan ini: "Komentar XML tidak ada untuk tipe atau anggota yang terlihat secara publik".
Bagaimana cara mengatasinya?
Jawaban:
5 opsi:
#pragma warning disable 1591
untuk menonaktifkan peringatan hanya untuk beberapa bit kode (dan #pragma warning restore 1591
sesudahnya)Tambahkan komentar XML ke tipe dan anggota yang terlihat untuk umum :)
///<Summary>
/// Gets the answer
///</Summary>
public int MyMethod()
{
return 42;
}
Anda memerlukan <summary>
komentar jenis ini pada semua anggota - ini juga muncul di menu popup intellisense.
The Alasan Anda mendapatkan peringatan ini adalah karena Anda telah mengatur proyek Anda untuk dokumentasi file output xml (dalam pengaturan proyek). Ini berguna untuk pustaka kelas (.dll assemblies) yang berarti pengguna .dll Anda mendapatkan dokumentasi intellisense untuk API Anda di studio visual.
Saya sarankan Anda mendapatkan sendiri salinan AddIn GhostDoc Visual Studio .. Membuat dokumentasi lebih mudah.
GhostDoc
- AddOn paling bodoh yang pernah saya lihat. Ini menghasilkan dokumentasi. Sekarang berhenti sejenak untuk memikirkannya. Anda ingin kode Anda lebih dimengerti sehingga Anda menggunakan alat yang menghasilkan dokumentasi hanya berdasarkan nama metode dan tipe argumen. Apakah masuk akal untuk Anda? Pengguna dapat melihat nama dan jenis argumen, menambahkan komentar ke DateTime date
- Tanggal benar-benar tidak membantu.
Menekan Peringatan untuk komentar XML
(bukan pekerjaan saya, tapi saya merasa berguna jadi saya sudah menyertakan artikel & tautan)
http://bernhardelbl.wordpress.com/2009/02/23/suppress-warnings-for-xml-comments/
Di sini saya akan menunjukkan kepada Anda, bagaimana Anda bisa menekan peringatan untuk komentar XML setelah Visual Studio build.
Latar Belakang
Jika Anda telah memeriksa tanda "File dokumentasi XML" di pengaturan proyek Visual Studio, file XML yang berisi semua komentar XML dibuat. Selain itu Anda akan mendapatkan banyak peringatan juga di file yang dihasilkan desainer, karena komentar XML yang hilang atau salah. Meskipun terkadang peringatan membantu kita meningkatkan dan menstabilkan kode kita, mendapatkan ratusan peringatan komentar XML hanya menyusahkan. Peringatan
Hilang XML komentar untuk jenis terlihat oleh publik atau anggota ... XML komentar pada ... memiliki tag param untuk '...', tetapi tidak ada parameter dengan nama yang Parameter '...' tidak memiliki tag yang cocok param dalam komentar XML untuk '...' (tapi parameter lain lakukan) Solusi
Anda dapat menekan setiap peringatan di Visual Studio.
Klik kanan proyek Visual Studio / Properties / Build Tab
Masukkan nomor peringatan berikut dalam "Peringatan penekanan": 1591.1572.1571.1573.1587.1570
Ada cara lain Anda dapat menekan pesan-pesan ini tanpa perlu perubahan kode atau blok pragma. Menggunakan Visual Studio - Buka properti proyek> Bangun> Kesalahan dan Peringatan> Peringatan Penekan - tambahkan 1591 ke daftar kode peringatan.
#pragma warning disable
mana - mana, yang hanya mengganggu.
Masukkan komentar XML. ;-)
/// <summary>
/// Describe your member here.
/// </summary>
public string Something
{
get;
set;
}
Sekilas ini mungkin tampak seperti lelucon, tetapi sebenarnya bisa bermanfaat. Bagi saya ternyata berguna untuk memikirkan tentang metode apa yang dilakukan bahkan untuk metode pribadi (kecuali benar-benar sepele, tentu saja).
Ini karena file dokumentasi XML telah ditentukan dalam Properti Proyek Anda dan Metode / Kelas Anda bersifat publik dan tidak memiliki dokumentasi.
Anda dapat:
Klik kanan pada Proyek Anda -> Properti -> tab 'Bangun' -> hapus centang File Dokumentasi XML.
Ringkasan dokumentasi XML seperti ini:
/// <summary>
/// Description of the class/method/variable
/// </summary>
..declaration goes here..
Saya ingin menambahkan sesuatu ke jawaban yang tercantum di sini:
Seperti yang Isak tunjukkan, dokumentasi XML berguna untuk Class Libraries, karena menyediakan intellisense kepada setiap konsumen dalam Visual Studio. Oleh karena itu, solusi yang mudah dan benar adalah dengan mematikan dokumentasi untuk setiap proyek tingkat atas (seperti UI, dll), yang tidak akan dilaksanakan di luar proyeknya sendiri.
Selain itu saya ingin menunjukkan bahwa peringatan tersebut hanya mengungkapkan anggota yang dapat dilihat oleh publik . Jadi, jika Anda mengatur perpustakaan kelas Anda hanya untuk mengekspos apa yang diperlukan, Anda dapat bertahan tanpa mendokumentasikan private
dan internal
anggota.
Saya tahu ini adalah utas yang sangat lama, tetapi ini adalah tanggapan pertama di google jadi saya pikir saya akan menambahkan sedikit informasi
ini : Perilaku ini hanya terjadi ketika tingkat peringatan diatur ke 4 di bawah "Properti Proyek" -> "Bangun" . Kecuali Anda benar-benar membutuhkan informasi sebanyak itu, Anda dapat mengaturnya menjadi 3 dan Anda akan menghilangkan peringatan ini. Tentu saja, mengubah tingkat peringatan memengaruhi lebih dari sekadar komentar, jadi silakan lihat dokumentasi jika Anda tidak yakin apa yang akan Anda lewatkan:
https://msdn.microsoft.com/en-us/library/thxezb7y.aspx
Dalam solusi Anda, setelah Anda memeriksa opsi untuk menghasilkan file Dokumen XML, itu mulai memeriksa anggota publik Anda, untuk memiliki XMLDoc, jika mereka tidak, Anda akan menerima peringatan per setiap elemen. jika Anda tidak benar-benar ingin melepaskan DLL Anda, dan juga Anda tidak perlu dokumentasi kemudian, pergi ke solusi Anda, membangun bagian, dan mematikannya, jika tidak Anda perlu, maka isilah, dan jika ada yang tidak penting properti dan bidang, hanya melampauinya dengan instruksi pra-kompiler
#pragma warning disable 1591
Anda juga dapat mengembalikan peringatan:
#pragma warning restore 1591
penggunaan pragma: di mana saja dalam kode sebelum tempat Anda mendapatkan peringatan kompiler untuk ... (untuk file, taruh di header, dan Anda tidak perlu mengaktifkannya lagi, untuk kelas tunggal membungkus kelas, atau untuk metode membungkus suatu metode, atau ... Anda tidak perlu membungkusnya, Anda dapat memanggilnya dan mengembalikannya dengan santai (mulai dari awal file, dan berakhir di dalam suatu metode)), tulis kode ini:
#pragma warning disable 1591
dan jika Anda perlu mengembalikannya, gunakan:
#pragma warning restore 1591
Berikut sebuah contoh:
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; }
}
}
Perhatikan bahwa arahan pragma dimulai pada awal baris
Mengatur level peringatan ke 2 akan menekan pesan ini. Tidak tahu apakah itu solusi terbaik karena juga menekan peringatan yang bermanfaat.
Jawaban Jon Skeet bekerja sangat baik ketika Anda membangun dengan VisualStudio. Namun, jika Anda sedang membangun sln melalui baris perintah (dalam kasus saya itu adalah melalui Ant) maka Anda mungkin menemukan bahwa msbuild mengabaikan permintaan supresi sln.
Menambahkan ini ke baris perintah msbuild memecahkan masalah bagi saya:
/p:NoWarn=1591
File > Edit > Lihat Proyek (klik)
Bawah busur drop-down (klik Open / Current work > Properties ), buka halaman properti proyek di "Build" di bawah "Output". Kotak centang "Hapus centang" Dokumentasi XML .
Bangun kembali dan tidak ada peringatan.
Anda perlu menambahkan /// Komentar untuk anggota yang peringatannya ditampilkan.
lihat kode di bawah ini
public EventLogger()
{
LogFile = string.Format("{0}{1}", LogFilePath, FileName);
}
Ini menampilkan peringatan Komentar XML yang Hilang untuk tipe yang terlihat untuk umum atau anggota '.EventLogger ()'
Saya menambahkan komentar untuk anggota dan peringatan hilang.
///<Summary>
/// To write a log <Anycomment as per your code>
///</Summary>
public EventLogger()
{
LogFile = string.Format("{0}{1}", LogFilePath, FileName);
}