在<权限>标签上

xde*_*000 5 c# xml-documentation

我正在阅读有关具有以下语法的标记的 C# 规范<permission>

<permission cref="member">description</permission> 
Run Code Online (Sandbox Code Playgroud)

据说:

该标签允许记录成员的安全可访问性,其中cref="member"是成员的名称,而description是对该成员的访问的描述。

所以我可以说这样的事情可能是有效的:

/// <permission cref="foo">foo is not accessible</permission>
private void foo() {}
Run Code Online (Sandbox Code Playgroud)

但是在规范中有以下示例:

/// <permission cref="System.Security.PermissionSet">Everyone can 
/// access this method.</permission> 
public static void Test() { } 
Run Code Online (Sandbox Code Playgroud)

如果cref是必须记录可访问性的成员,那么System.Security.PermissionSet它会做什么?

我真的不明白规范示例!

Evk*_*Evk 6

认为这是为了记录给定方法\类的代码访问安全要求而设计的。例如:

/// <summary>
/// Do stuff
/// </summary>
/// <permission cref="PermissionSet">Caller should have full trust</permission>
[PermissionSet(SecurityAction.LinkDemand, Name = "FullTrust")]        
public void DoStuff() {

}
Run Code Online (Sandbox Code Playgroud)

在这里,我们要求完全信任权限集,并且我们在我们的方法的文档中明确说明了这一点。还要考虑这一点:

/// <summary>
///  Do stuff 2
/// </summary>
/// <permission cref="FileIOPermission">Caller should have unrestricted IO access</permission>
[FileIOPermission(SecurityAction.Demand, Unrestricted = true)]
public void DoStuff2() {

}
Run Code Online (Sandbox Code Playgroud)

在这里,我们要求特定FileIOPermission(而不是权限集),因此我们在文档中明确说明。

这当然不是为了记录成员的可访问性(公共\私人)——为什么要这样做呢?可访问性是函数\类定义的一部分,不需要记录。