我正在使用以下语法阅读有关 <permission>
标记的 C# 规范:
<permission cref="member">description</permission>
据说:
所以我可以争辩说这样的事情可能是有效的:
/// <permission cref="foo">foo is not accessible</permission>
private void foo() {}
但是在规范中有以下示例:
/// <permission cref="System.Security.PermissionSet">Everyone can
/// access this method.</permission>
public static void Test() { }
如果
cref
是必须为可访问性记录的成员,System.Security.PermissionSet
用它做什么?真的我不明白规范的例子!!!
最佳答案
我认为这是为了记录给定方法\类的代码访问安全要求。例如:
/// <summary>
/// Do stuff
/// </summary>
/// <permission cref="PermissionSet">Caller should have full trust</permission>
[PermissionSet(SecurityAction.LinkDemand, Name = "FullTrust")]
public void DoStuff() {
}
在这里,我们要求设置完全信任权限,并在我们的方法文档中明确说明。还要考虑这个:
/// <summary>
/// Do stuff 2
/// </summary>
/// <permission cref="FileIOPermission">Caller should have unrestricted IO access</permission>
[FileIOPermission(SecurityAction.Demand, Unrestricted = true)]
public void DoStuff2() {
}
在这里,我们需要特定的
FileIOPermission
(不是权限集),因此我们在文档中明确说明了这一点。这当然不是为了记录成员的可访问性(公共(public)\私有(private))——为什么要这样做?可访问性是函数\类定义的一部分,不需要记录。
关于c# - 在 <permission> 标签上,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37211081/