Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/301.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# bool可见(PropertyInfo PropertyInfo) { var getter=propertyInfo.getMethod(); var setter=propertyInfo.GetSetMethod(); return(getter!=null&&IsVisible(getter))| |(setter!=null&&IsVisible(setter)); } 私有void AppendNestedType(StringBuilder sb,类型) { 附属物型(sb型,去极化型); } 私有方法(StringBuilder sb,MethodInfo MethodInfo) { 如果(!IsVisible(methodInfo)| |(methodInfo.IsHideBySig&&methodInfo.IsSpecialName)) { sb.长度=0; 返回; } 附录类型(sb,methodInfo.DeclaringType); sb.Append('.').Append(methodInfo.Name); AppendParameters(sb,methodInfo.GetParameters()); } 私有布尔值可见(MethodInfo MethodInfo) { 返回methodInfo.IsFamily | | methodInfo.IsPublic; } 私有参数(StringBuilder sb,ParameterInfo[]ParameterInfo) { 如果(parameterInfo.Length==0) { 返回; } 某人附加(“(”); for(int i=0;i0) { 某人附加(“,”); } var p=参数信息[i]; AppendType(sb,p.ParameterType); } 某人附加('); } 专用字段(StringBuilder sb,FieldInfo FieldInfo) { 如果(!IsVisible(fieldInfo)) { sb.长度=0; 返回; } 附录类型(sb,fieldInfo.DeclaringType); sb.Append('.').Append(fieldInfo.Name); } 私有布尔值可见(FieldInfo FieldInfo) { 返回fieldInfo.IsFamily | | fieldInfo.IsPublic; } 私有事件(StringBuilder sb、EventInfo和EventInfo) { 如果(!IsVisible(eventInfo)) { sb.长度=0; 返回; } AppendType(sb,eventInfo.DeclaringType); sb.Append('.').Append(eventInfo.Name); } 私有bool可见(EventInfo EventInfo) { 返回true;//hu? } 私有构造函数(StringBuilder sb,ConstructorInfo ConstructorInfo) { 如果(!IsVisible(constructorInfo)) { sb.长度=0; 返回; } 附录类型(sb,constructorInfo.DeclaringType); 附加,附加,附加; AppendParameters(sb,constructorInfo.GetParameters()); } 私有布尔值可见(ConstructorInfo ConstructorInfo) { 返回constructorInfo.IsFamily | | constructorInfo.IsPublic; } 私有void AppendType(StringBuilder sb,类型) { if(type.DeclaringType!=null) { 附属物型(sb型,去极化型); 某人附加('.'); } 如果(!string.IsNullOrEmpty(type.Namespace)) { sb.Append(type.Namespace); 某人附加('.'); } sb.Append(type.Name); if(type.IsGenericType&&!type.IsGenericTypeDefinition) { //从类型名称中删除“`1”后缀 while(char.IsDigit(sb[sb.Length-1])) 某人; 某人; { var args=type.GetGenericArguments(); 某人附加('{'); for(int i=0;i0) { 某人附加(“,”); } 附录类型(sb,args[i]); } 某人附加('}'); } } } 公共IEnumerator GetEnumerator() { 返回stringSet.GetEnumerator(); } System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() { 返回GetEnumerator(); } } }_C#_.net_Xml Documentation - Fatal编程技术网

C# bool可见(PropertyInfo PropertyInfo) { var getter=propertyInfo.getMethod(); var setter=propertyInfo.GetSetMethod(); return(getter!=null&&IsVisible(getter))| |(setter!=null&&IsVisible(setter)); } 私有void AppendNestedType(StringBuilder sb,类型) { 附属物型(sb型,去极化型); } 私有方法(StringBuilder sb,MethodInfo MethodInfo) { 如果(!IsVisible(methodInfo)| |(methodInfo.IsHideBySig&&methodInfo.IsSpecialName)) { sb.长度=0; 返回; } 附录类型(sb,methodInfo.DeclaringType); sb.Append('.').Append(methodInfo.Name); AppendParameters(sb,methodInfo.GetParameters()); } 私有布尔值可见(MethodInfo MethodInfo) { 返回methodInfo.IsFamily | | methodInfo.IsPublic; } 私有参数(StringBuilder sb,ParameterInfo[]ParameterInfo) { 如果(parameterInfo.Length==0) { 返回; } 某人附加(“(”); for(int i=0;i0) { 某人附加(“,”); } var p=参数信息[i]; AppendType(sb,p.ParameterType); } 某人附加('); } 专用字段(StringBuilder sb,FieldInfo FieldInfo) { 如果(!IsVisible(fieldInfo)) { sb.长度=0; 返回; } 附录类型(sb,fieldInfo.DeclaringType); sb.Append('.').Append(fieldInfo.Name); } 私有布尔值可见(FieldInfo FieldInfo) { 返回fieldInfo.IsFamily | | fieldInfo.IsPublic; } 私有事件(StringBuilder sb、EventInfo和EventInfo) { 如果(!IsVisible(eventInfo)) { sb.长度=0; 返回; } AppendType(sb,eventInfo.DeclaringType); sb.Append('.').Append(eventInfo.Name); } 私有bool可见(EventInfo EventInfo) { 返回true;//hu? } 私有构造函数(StringBuilder sb,ConstructorInfo ConstructorInfo) { 如果(!IsVisible(constructorInfo)) { sb.长度=0; 返回; } 附录类型(sb,constructorInfo.DeclaringType); 附加,附加,附加; AppendParameters(sb,constructorInfo.GetParameters()); } 私有布尔值可见(ConstructorInfo ConstructorInfo) { 返回constructorInfo.IsFamily | | constructorInfo.IsPublic; } 私有void AppendType(StringBuilder sb,类型) { if(type.DeclaringType!=null) { 附属物型(sb型,去极化型); 某人附加('.'); } 如果(!string.IsNullOrEmpty(type.Namespace)) { sb.Append(type.Namespace); 某人附加('.'); } sb.Append(type.Name); if(type.IsGenericType&&!type.IsGenericTypeDefinition) { //从类型名称中删除“`1”后缀 while(char.IsDigit(sb[sb.Length-1])) 某人; 某人; { var args=type.GetGenericArguments(); 某人附加('{'); for(int i=0;i0) { 某人附加(“,”); } 附录类型(sb,args[i]); } 某人附加('}'); } } } 公共IEnumerator GetEnumerator() { 返回stringSet.GetEnumerator(); } System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() { 返回GetEnumerator(); } } }

C# bool可见(PropertyInfo PropertyInfo) { var getter=propertyInfo.getMethod(); var setter=propertyInfo.GetSetMethod(); return(getter!=null&&IsVisible(getter))| |(setter!=null&&IsVisible(setter)); } 私有void AppendNestedType(StringBuilder sb,类型) { 附属物型(sb型,去极化型); } 私有方法(StringBuilder sb,MethodInfo MethodInfo) { 如果(!IsVisible(methodInfo)| |(methodInfo.IsHideBySig&&methodInfo.IsSpecialName)) { sb.长度=0; 返回; } 附录类型(sb,methodInfo.DeclaringType); sb.Append('.').Append(methodInfo.Name); AppendParameters(sb,methodInfo.GetParameters()); } 私有布尔值可见(MethodInfo MethodInfo) { 返回methodInfo.IsFamily | | methodInfo.IsPublic; } 私有参数(StringBuilder sb,ParameterInfo[]ParameterInfo) { 如果(parameterInfo.Length==0) { 返回; } 某人附加(“(”); for(int i=0;i0) { 某人附加(“,”); } var p=参数信息[i]; AppendType(sb,p.ParameterType); } 某人附加('); } 专用字段(StringBuilder sb,FieldInfo FieldInfo) { 如果(!IsVisible(fieldInfo)) { sb.长度=0; 返回; } 附录类型(sb,fieldInfo.DeclaringType); sb.Append('.').Append(fieldInfo.Name); } 私有布尔值可见(FieldInfo FieldInfo) { 返回fieldInfo.IsFamily | | fieldInfo.IsPublic; } 私有事件(StringBuilder sb、EventInfo和EventInfo) { 如果(!IsVisible(eventInfo)) { sb.长度=0; 返回; } AppendType(sb,eventInfo.DeclaringType); sb.Append('.').Append(eventInfo.Name); } 私有bool可见(EventInfo EventInfo) { 返回true;//hu? } 私有构造函数(StringBuilder sb,ConstructorInfo ConstructorInfo) { 如果(!IsVisible(constructorInfo)) { sb.长度=0; 返回; } 附录类型(sb,constructorInfo.DeclaringType); 附加,附加,附加; AppendParameters(sb,constructorInfo.GetParameters()); } 私有布尔值可见(ConstructorInfo ConstructorInfo) { 返回constructorInfo.IsFamily | | constructorInfo.IsPublic; } 私有void AppendType(StringBuilder sb,类型) { if(type.DeclaringType!=null) { 附属物型(sb型,去极化型); 某人附加('.'); } 如果(!string.IsNullOrEmpty(type.Namespace)) { sb.Append(type.Namespace); 某人附加('.'); } sb.Append(type.Name); if(type.IsGenericType&&!type.IsGenericTypeDefinition) { //从类型名称中删除“`1”后缀 while(char.IsDigit(sb[sb.Length-1])) 某人; 某人; { var args=type.GetGenericArguments(); 某人附加('{'); for(int i=0;i0) { 某人附加(“,”); } 附录类型(sb,args[i]); } 某人附加('}'); } } } 公共IEnumerator GetEnumerator() { 返回stringSet.GetEnumerator(); } System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() { 返回GetEnumerator(); } } },c#,.net,xml-documentation,C#,.net,Xml Documentation,哦,我还没有弄明白如何处理事件,在这个例子中它们总是可见的。我也面临着同样的问题。SHFB非常慢,因为我们有另一个文档代码库,所以我们不需要它来为我们生成文档 我最终为内部类使用了一个单独的名称空间。例如,我的所有内部类都位于MyCompany.MyProduct.internal中。然后我可以使用一个简单的命令 xml ed -L -d "//member[contains(@name, 'MyCompany.MyProduct.Internal')]" MyProduct.xml 清除XM

哦,我还没有弄明白如何处理事件,在这个例子中它们总是可见的。

我也面临着同样的问题。SHFB非常慢,因为我们有另一个文档代码库,所以我们不需要它来为我们生成文档

我最终为内部类使用了一个单独的名称空间。例如,我的所有内部类都位于
MyCompany.MyProduct.internal
中。然后我可以使用一个简单的命令

xml ed -L -d "//member[contains(@name, 'MyCompany.MyProduct.Internal')]" MyProduct.xml
清除XML。这当然不是防弹的——它不包括公共类中的内部成员,而且它确实需要一些规则来记住将内部类放入内部类中。但这是对我来说最干净、干扰最小的方法。它也是一个独立的EXE文件,可以轻松地签入构建服务器,不费吹灰之力。

@John Leidegren

我也有同样的要求,我找到了你代码中缺失部分的答案。一个事件有两个方法,Add和Remove,如果其中任何一个是public,则将其视为public。所以它会是这样的:

private bool IsVisible(EventInfo eventInfo)
{
    return eventInfo.GetAddMethod(false) != null
        || eventInfo.GetRemoveMethod(false) != null;
}

尽管我想不出为什么一个是公共的而另一个不是公共的。

我不是在谈论SandCastle,而是在谈论xml文件,因为这是如何在VS Intellisense工具提示中启用函数和参数描述的。如果使用SandCastle和SandCastle帮助文件生成器,您可以告诉它只使用最终文档中的公共方法。可能不完全是您想要的?我想为我的类库发布XML文档,这样它就会出现在IntelliSenseSorry中,但我在SHFBi中找不到这样的选项
xml ed -L -d "//member[contains(@name, 'MyCompany.MyProduct.Internal')]" MyProduct.xml
private bool IsVisible(EventInfo eventInfo)
{
    return eventInfo.GetAddMethod(false) != null
        || eventInfo.GetRemoveMethod(false) != null;
}