C# Roslyn TypeDeclarationSyntax、MethodDeclarationSyntax、FieldDeclarationSyntax具有公共属性,但没有公共基类或接口
我想做什么: 我正在使用roslyn编写代码重构。我的目标是雕刻出一块石头。因此,我所做的基本上是删除所有私人员工,并用C# Roslyn TypeDeclarationSyntax、MethodDeclarationSyntax、FieldDeclarationSyntax具有公共属性,但没有公共基类或接口,c#,.net,roslyn,roslyn-code-analysis,C#,.net,Roslyn,Roslyn Code Analysis,我想做什么: 我正在使用roslyn编写代码重构。我的目标是雕刻出一块石头。因此,我所做的基本上是删除所有私人员工,并用抛出新的NotImplementedException()替换非私人员工团体 我的问题是什么: 一切都很好,但我最终得到了大量类似这样的代码复制: private static bool IsPrivate(TypeDeclarationSyntax type) { return type.Modifiers.Any(IsPrivateModif
抛出新的NotImplementedException()
替换非私人员工团体
我的问题是什么:
一切都很好,但我最终得到了大量类似这样的代码复制:
private static bool IsPrivate(TypeDeclarationSyntax type)
{
return type.Modifiers.Any(IsPrivateModifier);
}
private static bool IsPrivate(MethodDeclarationSyntax method)
{
return method.Modifiers.Any(IsPrivateModifier);
}
private static bool IsPrivate(FieldDeclarationSyntax field)
{
return field.Modifiers.Any(IsPrivateModifier);
}
private static bool IsPrivate(PropertyDeclarationSyntax property)
{
return property.Modifiers.Any(IsPrivateModifier);
}
private static bool IsPrivate(IndexerDeclarationSyntax property)
{
return property.Modifiers.Any(IsPrivateModifier);
}
private static bool IsPrivateModifier(SyntaxToken modifier)
{
return modifier.Kind() == SyntaxKind.PrivateKeyword;
}
原因是我需要使用一个属性Members
,语法类没有通用的基类型或接口来声明Members
。我对属性Body
也有同样的问题,这对所有这些都是通用的,但是没有通用的基础或通用的接口
问题:
API设计是这样的有什么原因吗,或者我遗漏了什么?在这些和许多其他类似的情况下,我如何避免重复
更新
在roslyn回购协议中产生了一个问题:我希望他们能解决,但你可以
dynamic
现在就开始吧。我建议您在。已经有了。