var methodDeclaration = SyntaxFactory.ParseMemberDeclaration(" public void Hello3<T, H, E, G>() where T : class, E, new() where E : notnull, IList<E>, IEquatable<E> where H : unmanaged, allows ref struct where G : unmanaged { }") as MethodDeclarationSyntax;
var interfaceListType = SyntaxFactory.ParseTypeName("IList<T>");
var indexType = SyntaxFactory.ParseTypeName("Index");
var crefParameters = SyntaxFactory.SeparatedList(
new[] {
SyntaxFactory.CrefParameter(SyntaxFactory.ParseTypeName("T")),
SyntaxFactory.CrefParameter(SyntaxFactory.ParseTypeName("T"))
}
);
var nameMemberCref = SyntaxFactory.NameMemberCref(indexType, SyntaxFactory.CrefParameterList(crefParameters));
var indexerMemberCref = SyntaxFactory.IndexerMemberCref(
SyntaxFactory.Token(SyntaxKind.ThisKeyword),
SyntaxFactory.CrefBracketedParameterList(crefParameters)
);
var qualifiedCref = SyntaxFactory.QualifiedCref(interfaceListType, indexerMemberCref);
XmlCrefAttributeSyntax xmlCrefAttribute = SyntaxFactory.XmlCrefAttribute(qualifiedCref);
DocumentationCommentTriviaSyntax documentationComment = SyntaxFactory.DocumentationCommentTrivia(
SyntaxKind.MultiLineDocumentationCommentTrivia,
SyntaxFactory.List(new XmlNodeSyntax[]
{
SyntaxFactory.XmlNewLine(""),
SyntaxFactory.XmlEmptyElement("inheritdoc").AddAttributes(xmlCrefAttribute)
})
);
methodDeclaration = methodDeclaration.WithLeadingTrivia(SyntaxFactory.Trivia(documentationComment));
Console.WriteLine(methodDeclaration.NormalizeWhitespace().ToFullString());
var methodDeclaration = SyntaxFactory.ParseMemberDeclaration(" public void Hello3<T, H, E, G>() where T : class, E, new() where E : notnull, IList<E>, IEquatable<E> where H : unmanaged, allows ref struct where G : unmanaged { }") as MethodDeclarationSyntax;
var interfaceListType = SyntaxFactory.ParseTypeName("IList<T>");
var indexType = SyntaxFactory.ParseTypeName("Index");
var crefParameters = SyntaxFactory.SeparatedList(
new[] {
SyntaxFactory.CrefParameter(SyntaxFactory.ParseTypeName("T")),
SyntaxFactory.CrefParameter(SyntaxFactory.ParseTypeName("T"))
}
);
var nameMemberCref = SyntaxFactory.NameMemberCref(indexType, SyntaxFactory.CrefParameterList(crefParameters));
var indexerMemberCref = SyntaxFactory.IndexerMemberCref(
SyntaxFactory.Token(SyntaxKind.ThisKeyword),
SyntaxFactory.CrefBracketedParameterList(crefParameters)
);
var qualifiedCref = SyntaxFactory.QualifiedCref(interfaceListType, indexerMemberCref);
XmlCrefAttributeSyntax xmlCrefAttribute = SyntaxFactory.XmlCrefAttribute(qualifiedCref);
DocumentationCommentTriviaSyntax documentationComment = SyntaxFactory.DocumentationCommentTrivia(
SyntaxKind.MultiLineDocumentationCommentTrivia,
SyntaxFactory.List(new XmlNodeSyntax[]
{
SyntaxFactory.XmlNewLine(""),
SyntaxFactory.XmlEmptyElement("inheritdoc").AddAttributes(xmlCrefAttribute)
})
);
methodDeclaration = methodDeclaration.WithLeadingTrivia(SyntaxFactory.Trivia(documentationComment));
Console.WriteLine(methodDeclaration.NormalizeWhitespace().ToFullString());