C# belge açıklamaları için önerilen XML etiketleri
C# belge açıklamaları, çıktı belgelerinin yapısını tanımlamak için XML öğelerini kullanır. Bu özelliğin bir sonucu, belge açıklamalarınıza herhangi bir geçerli XML ekleyebilmenizdir. C# derleyicisi bu öğeleri çıkış XML dosyasına kopyalar. Açıklamalarınızda geçerli herhangi bir XML kullanabilirsiniz (geçerli html öğeleri dahil), birçok nedenden dolayı belge kodu önerilir.
C# kodunuzda XML belge etiketlerini kullanırken bilmeniz gereken bazı öneriler, genel kullanım örneği senaryoları ve bilmeniz gerekenler aşağıda belirtilmiştir. Belge açıklamalarınıza etiket koyabilirsiniz ancak bu makalede en yaygın dil yapıları için önerilen etiketler açıklanmaktadır. Her durumda şu önerilere uymalısınız:
- Tutarlılık açısından, herkese açık tüm türler ve bunların genel üyeleri belgelenmelidir.
- Özel üyeler XML açıklamaları kullanılarak da belgelenebilir. Ancak, kitaplığınızın iç (gizli olabilecek) çalışmalarını kullanıma sunar.
- Türlerin ve üyelerinin en azından bir
<summary>
etiketi olmalıdır. - Belge metni, tam duraklarla biten tümceler kullanılarak yazılmalıdır.
- Kısmi sınıflar tam olarak desteklenir ve belge bilgileri her tür için tek bir girişte birleştirilir. Kısmi üyenin her iki bildiriminin de belge açıklamaları varsa, uygulama bildirimindeki açıklamalar çıkış XML'sine yazılır.
XML belgeleri ile ///
başlar. Yeni bir proje oluşturduğunuzda, şablonlar sizin için bazı başlangıç ///
satırları ekler. Bu açıklamaların işlenmesinde bazı kısıtlamalar vardır:
- Belgeler iyi biçimlendirilmiş XML olmalıdır. XML iyi biçimlendirilmemişse, derleyici bir uyarı oluşturur. Belge dosyası bir hatayla karşılaşıldığını belirten bir açıklama içerir.
- Önerilen etiketlerden bazılarının özel anlamları vardır:
<param>
etiketi, parametreleri açıklamak için kullanılır. Kullanılırsa, derleyici parametrenin mevcut olduğunu ve tüm parametrelerin belgelerde açıklandığını doğrular. Doğrulama başarısız olursa, derleyici bir uyarı görüntüler.- Özniteliği,
cref
bir kod öğesine başvurmak için herhangi bir etikete eklenebilir. Derleyici bu kod öğesinin mevcut olduğunu doğrular. Doğrulama başarısız olursa, derleyici bir uyarı görüntüler. Derleyici, özniteliğinde açıklanan bir türü ararken tümusing
yönergeleri dikkate alırcref
. - Etiketi
<summary>
, Visual Studio içindeki IntelliSense tarafından bir tür veya üye hakkında ek bilgi görüntülemek için kullanılır.Not
XML dosyası, tür ve üyeler hakkında tam bilgi sağlamaz (örneğin, herhangi bir tür bilgisi içermez). Bir tür veya üye hakkında tam bilgi almak için, belge dosyasını gerçek tür veya üye üzerindeki yansımayla birlikte kullanın.
- Geliştiriciler kendi etiket kümelerini oluşturabilir. Derleyici bu etiketleri çıkış dosyasına kopyalar.
Önerilen etiketlerden bazıları herhangi bir dil öğesinde kullanılabilir. Diğerleri daha özel kullanımlara sahiptir. Son olarak, bazı etiketler belgelerinizdeki metni biçimlendirmek için kullanılır. Bu makalede, kullanımlarına göre düzenlenmiş önerilen etiketler açıklanmaktadır.
Derleyici, aşağıdaki listede öğelerin söz dizimini ve ardından tek bir * öğesini doğrular. Visual Studio, derleyici tarafından doğrulanan etiketler ve ardından aşağıdaki listede ** bulunan tüm etiketler için IntelliSense sağlar. Burada listelenen etiketlere ek olarak, derleyici ve Visual Studio , , <i>
<u>
, <br/>
ve <a>
etiketlerini de doğrular<b>
. Derleyici ayrıca, kullanım dışı HTML olan öğesini de doğrular <tt>
.
- Birden çok öğe için kullanılan Genel Etiketler - Bu etiketler herhangi bir API için en düşük kümedir.
- Üyeler için kullanılan etiketler - Bu etiketler yöntemler ve özellikler belgelenirken kullanılır.
<returns>
: Bu öğenin değeri Visual Studio'daki IntelliSense'te görüntülenir.<param>
*: Bu öğenin değeri Visual Studio'daki IntelliSense'te görüntülenir.<paramref>
<exception>
*<value>
: Bu öğenin değeri Visual Studio'daki IntelliSense'te görüntülenir.
- Belge çıktısını biçimlendirme - Bu etiketler, belge oluşturan araçlar için biçimlendirme yönergeleri sağlar.
- Belge metnini yeniden kullanma - Bu etiketler XML açıklamalarının yeniden kullanılmasını kolaylaştıran araçlar sağlar.
<inheritdoc>
**<include>
*
- Bağlantı ve başvuru oluşturma - Bu etiketler diğer belgelere bağlantılar oluşturur.
- Genel türler ve yöntemler için etiketler - Bu etiketler yalnızca genel türler ve yöntemler üzerinde kullanılır
<typeparam>
*: Bu öğenin değeri Visual Studio'daki IntelliSense'te görüntülenir.<typeparamref>
Not
Belge açıklamaları ad alanına uygulanamaz.
Bir belge açıklamasının metninde açılı ayraçların görünmesini istiyorsanız, sırasıyla ve olan <
ve >
>
html kodlamasını <
kullanın. Bu kodlama aşağıdaki örnekte gösterilmiştir.
/// <summary>
/// This property always returns a value < 1.
/// </summary>
Genel etiketler
<özet>
<summary>description</summary>
Etiketin <summary>
bir türü veya tür üyesini tanımlamak için kullanılması gerekir. Tür açıklamasına ek bilgiler eklemek için açıklamaları> kullanın<. Kod öğeleri için belge sayfalarına iç köprüler oluşturmak üzere DocFX ve Sandcastle gibi belge araçlarını etkinleştirmek için cref özniteliğini kullanın. Etiketin <summary>
metni IntelliSense'te ve Nesne Tarayıcısı penceresinde görüntülenir.
<Açıklamalar>
<remarks>
description
</remarks>
<remarks>
Etiket, bir tür veya tür üyesi hakkında bilgi eklemek için kullanılır ve özetle>< belirtilen bilgileri tamamlar. Bu bilgiler Nesne Tarayıcısı penceresinde görüntülenir. Bu etiket daha uzun açıklamalar içerebilir. Markdown için bölümlerin kullanılmasının CDATA
yazmayı daha kullanışlı hale getirebileceğini fark edebilirsiniz. Docfx gibi araçlar markdown metnini bölümler halinde CDATA
işler.
Belge üyeleri
<Döndürür>
<returns>description</returns>
Etiket <returns>
, dönüş değerini açıklamak üzere bir yöntem bildirimi için açıklama içinde kullanılmalıdır.
<param>
<param name="name">description</param>
name
: Yöntem parametresinin adı. Adı tırnak işareti (") içine alın. Parametrelerin adları API imzası ile eşleşmelidir. Bir veya daha fazla parametre ele alınmazsa, derleyici bir uyarı görüntüler. Derleyici ayrıca değeriname
yöntem bildirimindeki resmi bir parametreyle eşleşmiyorsa bir uyarı verir.
etiketi, <param>
yöntemin parametrelerinden birini açıklamak üzere bir yöntem bildiriminin açıklamasında kullanılmalıdır. Birden çok parametreyi belgeleyemek için birden çok <param>
etiket kullanın. Etiketin <param>
metni IntelliSense, Nesne Tarayıcısı ve Kod Açıklaması Web Raporu'nda görüntülenir.
<paramref>
<paramref name="name"/>
name
: Başvurulacak parametrenin adı. Adı tırnak işareti (") içine alın.
<paramref>
etiketi, kod açıklamalarındaki bir sözcüğün (örneğin, veya <remarks>
bloğundaki) <summary>
bir parametreye başvurduğunu göstermek için size bir yol sağlar. XML dosyası, bu sözcüğü kalın veya italik yazı tipi gibi farklı bir şekilde biçimlendirmek için işlenebilir.
<istisna>
<exception cref="member">description</exception>
- cref = "
member
": Geçerli derleme ortamından kullanılabilen bir özel duruma başvuru. Derleyici, verilen özel durumun mevcut olup olmadığını denetler ve çıkış XML'sindeki kurallı öğe adına çevrilirmember
.member
tırnak işaretleri (") içinde görünmelidir.
<exception>
etiketi, hangi özel durumların oluşturulabileceğini belirtmenize olanak tanır. Bu etiket yöntemler, özellikler, olaylar ve dizin oluşturucuların tanımlarına uygulanabilir.
<value>
<value>property-description</value>
etiketi, <value>
bir özelliğin temsil ettiği değeri açıklamanıza olanak tanır. Visual Studio .NET geliştirme ortamında kod sihirbazı aracılığıyla bir özellik eklediğinizde, yeni özellik için bir <özet> etiketi ekler. Özelliğin temsil ettiği değeri açıklamak için el ile bir <value>
etiket eklersiniz.
Belge çıkışını biçimlendirme
<para>
<remarks>
<para>
This is an introductory paragraph.
</para>
<para>
This paragraph contains more details.
</para>
</remarks>
Etiket<para>
, özet>,< açıklamalar veya <dönüşler>> gibi <bir etiketin içinde kullanım içindir ve metne yapı eklemenize olanak tanır. etiketi çift <para>
aralıklı paragraf oluşturur. <br/>
Tek bir aralıklı paragraf istiyorsanız etiketini kullanın.
<listele>
<list type="bullet|number|table">
<listheader>
<term>term</term>
<description>description</description>
</listheader>
<item>
<term>Assembly</term>
<description>The library or executable built from a compilation.</description>
</item>
</list>
Blok <listheader>
, bir tablonun veya tanım listesinin başlık satırını tanımlamak için kullanılır.
Tablo tanımlarken:
- Yalnızca başlığında için
term
bir girdi sağlamanız gerekir. - Listedeki her öğe bir
<item>
blokla belirtilir. Heritem
için yalnızca içindescription
bir giriş sağlamanız gerekir.
Tanım listesi oluştururken:
- Başlığında için
term
bir giriş sağlamanız gerekir. - Listedeki her öğe bir
<item>
blokla belirtilir. Heritem
birinin hem hemdescription
de içermesiterm
gerekir.
Bir liste veya tablo gerektiği kadar çok <item>
blok içerebilir.
<c>
<c>text</c>
etiketi, <c>
bir açıklama içindeki metnin kod olarak işaretlenmesi gerektiğini belirtmek için size bir yol sağlar. Birden çok satırı kod> olarak belirtmek için kodu kullanın<.
<kod>
<code>
var index = 5;
index++;
</code>
Etiketi <code>
, birden çok kod satırı belirtmek için kullanılır. Açıklama içindeki tek satırlı metnin kod olarak işaretlenmesi gerektiğini belirtmek için c> kullanın<.
<örnek>
<example>
This shows how to increment an integer.
<code>
var index = 5;
index++;
</code>
</example>
etiketi, <example>
bir yöntemin veya başka bir kitaplık üyesinin nasıl kullanılacağını gösteren bir örnek belirtmenize olanak tanır. Bir örnek genellikle kod> etiketinin kullanılmasını <içerir.
Belge metnini yeniden kullanma
<inheritdoc>
<inheritdoc [cref=""] [path=""]/>
Xml açıklamalarını temel sınıflardan, arabirimlerden ve benzer yöntemlerden devralın. kullanmak inheritdoc
, yinelenen XML açıklamalarının istenmeyen kopyalanmasını ve yapıştırılması ortadan kaldırır ve XML açıklamalarının otomatik olarak eşitlenmesini sağlar. Etiketi bir türe <inheritdoc>
eklediğinizde, tüm üyeler açıklamaları da devralır.
cref
: Belgeleri devralacak üyeyi belirtin. Geçerli üyede zaten tanımlanmış etiketler devralınanlar tarafından geçersiz kılınmıyor.path
: Gösterilecek şekilde ayarlanmış bir düğüme neden olan XPath ifade sorgusu. Bu özniteliği, etiketleri devralınan belgeleri içerecek veya dışlamak üzere filtrelemek için kullanabilirsiniz.
Temel sınıflara veya arabirimlere XML açıklamalarınızı ekleyin ve inheritdoc'un açıklamaları sınıfları uygulamaya kopyalamasına izin verin. XML açıklamalarınızı zaman uyumlu yöntemlerinize ekleyin ve inheritdoc'un açıklamaları aynı yöntemlerin zaman uyumsuz sürümlerine kopyalamasına izin verin. Belirli bir üyenin açıklamalarını kopyalamak istiyorsanız, üyeyi cref
belirtmek için özniteliğini kullanırsınız.
<include>
<include file='filename' path='tagpath[@name="id"]' />
filename
: Belgeleri içeren XML dosyasının adı. Dosya adı, kaynak kod dosyasına göre bir yol ile nitelenebilir. Tek tırnak içine alınfilename
(' ').tagpath
: içindekifilename
etiketlerin yolu etiketinename
yol açar. Yolu tek tırnak içine alın (' ').name
: Açıklamaların önündeki etiketteki ad tanımlayıcısı;name
birid
öğesine sahiptir.id
: Açıklamaların önündeki etiketin kimliği. Kimliği tırnak işareti (") içine alın.
etiketi, <include>
kaynak kodunuzdaki türleri ve üyeleri açıklayan başka bir dosyadaki açıklamalara başvurmanızı sağlar. Dış dosya eklemek, belge açıklamalarını doğrudan kaynak kod dosyanıza yerleştirmenin bir alternatifidir. Belgeleri ayrı bir dosyaya yerleştirerek, belgelere kaynak kodundan ayrı olarak kaynak denetimi uygulayabilirsiniz. Bir kişi kaynak kod dosyasını kullanıma alabilir ve başka biri belge dosyasını kullanıma alabilir. <include>
etiketi XML XPath söz dizimini kullanır. Kullanımınızı <include>
özelleştirmenin yolları için XPath belgelerine bakın.
Örneğin, aşağıdaki kaynak kodu açıklamaları eklemek için etiketini kullanır <include>
. Dosya yolu kaynağa göredir.
namespace MyNamespace;
public class MyType
{
/// <returns>This is the returns text of MyMethod. It comes from triple slash comments.</returns>
/// <remarks>This is the remarks text of MyMethod. It comes from triple slash comments.</remarks>
/// <include file="MyAssembly.xml" path="doc/members/member[@name='M:MyNamespace.MyType.MyMethod']/*" />
public int MyMethod(int p) => p;
}
Ekleme dosyasının XML kaynağı aşağıdaki örnekte gösterilmiştir. C# derleyicisi tarafından oluşturulan XML dosyasıyla aynı şekilde yapılandırılmıştır. BIR XPath ifadesi bunları tanımlayabildiği sürece XML dosyası birden çok yöntem veya tür için metin içerebilir.
<?xml version="1.0"?>
<doc>
<members>
<member name="M:MyNamespace.MyType.MyMethod">
<param name="p">This is the description of the parameter p of MyMethod. It comes from the included file.</param>
<summary>This is the summary of MyMethod. It comes from the included file.</summary>
</member>
</members>
</doc>
Bu yöntemin XML çıkışı aşağıdaki örnekte gösterilmiştir:
<member name="M:MyNamespace.MyType.MyMethod(System.Int32)">
<summary>This is the summary of MyMethod. It comes from the included file.</summary>
<returns>This is the returns text of MyMethod. It comes from triple slash comments.</returns>
<remarks>This is the remarks text of MyMethod. It comes from triple slash comments.</remarks>
<param name="p">This is the description of the parameter p of MyMethod. It comes from the included file.</param>
</member>
İpucu
.NET Çalışma Zamanı ekibi, etiketi belgelerinde kapsamlı bir şekilde kullanır <include>
. Depoda arama yaparak dotnet/runtime
birçok örnek görebilirsiniz.
Bağlantılar ve başvurular oluşturma
<görmek>
<see cref="member"/>
<!-- or -->
<see cref="member">Link text</see>
<!-- or -->
<see href="link">Link Text</see>
<!-- or -->
<see langword="keyword"/>
cref="member"
: Geçerli derleme ortamından çağrılabilecek bir üyeye veya alana başvuru. Derleyici, verilen kod öğesinin mevcut olup olmadığını denetler ve çıkış XML'sindeki öğe adına geçirirmember
. Üyeyi tırnak işaretleri (") içine yerleştirin. Ayrı bir kapanış etiketi kullanarak "cref" için farklı bağlantı metni sağlayabilirsiniz.href="link"
: Belirli bir URL'ye tıklanabilir bağlantı. Örneğin,<see href="https://github.com">GitHub</see>
bağlantısı olanhttps://github.com
metinle GitHub tıklanabilir bir bağlantı oluşturur.langword="keyword"
: Veya diğer geçerli anahtar sözcüklerden biri gibitrue
bir dil anahtar sözcüğü.
etiketi, <see>
metnin içinden bir bağlantı belirtmenize olanak tanır. Metnin Ayrıca Bkz bölümüne yerleştirilmesi gerektiğini belirtmek için seealso> kullanın<. Kod öğelerinin belge sayfalarına iç köprüler oluşturmak için cref özniteliğini kullanın. Gibi cref="IDictionary{T, U}"
genel bir türe veya yönteme başvuru belirtmek için tür parametrelerini eklersiniz. Ayrıca, href
köprü olarak işlev gösteren geçerli bir özniteliktir.
<seealso>
<seealso cref="member"/>
<!-- or -->
<seealso href="link">Link Text</seealso>
cref="member"
: Geçerli derleme ortamından çağrılabilecek bir üyeye veya alana başvuru. Derleyici, verilen kod öğesinin mevcut olup olmadığını denetler ve çıkış XML'sindeki öğe adına geçirirmember
.member
tırnak işaretleri (") içinde görünmelidir.href="link"
: Belirli bir URL'ye tıklanabilir bağlantı. Örneğin,<seealso href="https://github.com">GitHub</seealso>
bağlantısı olanhttps://github.com
metinle GitHub tıklanabilir bir bağlantı oluşturur.
Etiketi, <seealso>
Ayrıca Bkz bölümünde görünmesini isteyebileceğiniz metni belirtmenize olanak tanır. Metnin içinden bir bağlantı belirtmek için bkz. seçeneğini kullanın<.> Etiketi etiketin seealso
içine summary
yerleştiremezsiniz.
cref özniteliği
cref
XML belge etiketindeki öznitelik "kod başvurusu" anlamına gelir. Etiketin iç metninin tür, yöntem veya özellik gibi bir kod öğesi olduğunu belirtir. DocFX ve Sandcastle gibi belge araçları, türün cref
veya üyenin belgelendiği sayfaya otomatik olarak köprü oluşturmak için öznitelikleri kullanır.
href özniteliği
href
özniteliği, bir web sayfasına başvuru anlamına gelir. API'niz veya kitaplığınız hakkındaki çevrimiçi belgelere doğrudan başvurmak için bunu kullanabilirsiniz.
Genel türler ve yöntemler
<typeparam>
<typeparam name="TResult">The type returned from this method</typeparam>
TResult
: tür parametresinin adı. Adı tırnak işareti (") içine alın.
Etiket, <typeparam>
tür parametresini açıklamak üzere genel bir tür veya yöntem bildirimi için açıklama içinde kullanılmalıdır. Genel türün veya yöntemin her tür parametresi için bir etiket ekleyin. Etiketin <typeparam>
metni IntelliSense'te görüntülenir.
<typeparamref>
<typeparamref name="TKey"/>
TKey
: tür parametresinin adı. Adı tırnak işareti (") içine alın.
Belge dosyasının tüketicilerinin sözcüğü italik gibi farklı bir şekilde biçimlendirmesini sağlamak için bu etiketi kullanın.
Kullanıcı tanımlı etiketler
Bu makalede özetlenen tüm etiketler, C# derleyicisi tarafından tanınan etiketleri temsil edilir. Ancak, bir kullanıcı kendi etiketlerini tanımlamakta serbesttir. Sandcastle gibi araçlar olay> ve <not> gibi< ek etiketler için destek getirir ve hatta ad alanlarını belgeleme desteği sunar. Özel veya şirket içi belge oluşturma araçları standart etiketlerle de kullanılabilir ve HTML'den PDF'ye birden çok çıkış biçimi desteklenebilir.