【问题标题】:How to work with BaseListSyntax, Roslyn如何使用 BaseListSyntax,Roslyn
【发布时间】:2014-03-16 23:55:00
【问题描述】:

需要使用 roslyn 将继承添加到某些接口。
我描述了这个类,但不知道如何在以下结构中设置继承:

ClassDeclarationSyntax lClassDeclarationSyntax =
Syntax.ClassDeclaration(
                    Syntax.List<AttributeListSyntax>(lAttributeListSyntax), 
                    Syntax.TokenList(lTokens), 
                    Syntax.Identifier(_classInfo.Identifier.ValueText), 
                    null,
                    null,---------
                    Syntax.List<TypeParameterConstraintClauseSyntax>(), 
                    Syntax.List<MemberDeclarationSyntax>(lMemberDeclarationSyntaxList));

隔离的“null”它是按 BaseListSyntax 类型列出属性的地方,我可以在其中指定继承接口的名称。
我该怎么做?

【问题讨论】:

    标签: c# roslyn


    【解决方案1】:

    使用类似:Syntax.BaseList(Syntax.ParseTypeName("MyBaseType") 代替上面的 null

    【讨论】:

    • 错误:无法从“Roslyn.Compilers.CSharp.TypeSyntax”转换为“Roslyn.Compilers.CSharp.SeparatedSyntaxList
    • 我创建列表SeparatedSyntaxList&lt;TypeSyntax&gt; lSeparatedSyntaxList = new SeparatedSyntaxList&lt;TypeSyntax&gt;();然后添加需要的元素TypeSyntax type = Syntax.ParseTypeName("MyInterface"); lSeparatedSyntaxList.Add(type);但是列表是空的,谁知道为什么?
    • SeparatedSyntaxList 是不可变的,因此 add 调用会返回一个带有 item.aded 的新列表。它没有将其添加到位。
    猜你喜欢
    • 2015-06-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-11
    • 1970-01-01
    • 1970-01-01
    • 2014-06-17
    • 1970-01-01
    相关资源
    最近更新 更多