Rolsyn Can't get baseType











up vote
0
down vote

favorite












If you extend the class oneself created, you cannot get the base class description.
If direct extend Controller,you can get the base class description.
Roslyn Version 2.9.0.
I upgraded Roslyn Version from 1.1.0 to 2.9.0.






namespace BrnMall.Web.MallAdmin.Controllers
{
class ModelOptionalRequiredPropertiesAnalyzer_R1 : BaseTest
{
[HttpPost]
public void Ac() {
}
}
}








namespace BrnMall.Web.MallAdmin.Controllers
{
class BaseTest : Controller

{

}
}








 var methodSymbol = semanticModel.GetDeclaredSymbol(methodDeclarationSyntax) as IMethodSymbol;
if (methodSymbol == null)
continue;
//Cannot get to base class
IEnumerable<ITypeSymbol> iTypes = methodSymbol.ContainingType.GetAllTypes();








 public static IEnumerable<ITypeSymbol> GetAllTypes(this ITypeSymbol typeSymbol)
{
while (typeSymbol.BaseType != null)
{
yield return typeSymbol;
typeSymbol = typeSymbol.BaseType;
}
}












share|improve this question
























  • What are you expecting the code to do? What is it instead doing?
    – mjwills
    Nov 12 at 8:51










  • I need to parse the syntax tree of the code Analyze the source code from the syntax tree。 But the syntax tree now parsed has no base class
    – wang.c.y
    Nov 12 at 8:55












  • Roslyn Version is 2.9.0 Visual Studio 2017 Version 15.8
    – wang.c.y
    Nov 12 at 8:57












  • Roslyn parsing ModelOptionalRequiredPropertiesAnalyzer_R1 class There is no BaseTest in the syntax tree
    – wang.c.y
    Nov 12 at 9:02






  • 1




    Your question is unclear for a number of reasons. Where does methodDeclarationSyntax come from? Where is the GetAllTypes() method declared? It appears not to be standard Roslyn method - is it an extension method or something? Incidentally, from my own experimentation, methodSymbol.ContainingType.BaseType seems to quite happily return the base type regardless of whether you declared it yourself.
    – Luke Woodward
    Nov 12 at 13:32















up vote
0
down vote

favorite












If you extend the class oneself created, you cannot get the base class description.
If direct extend Controller,you can get the base class description.
Roslyn Version 2.9.0.
I upgraded Roslyn Version from 1.1.0 to 2.9.0.






namespace BrnMall.Web.MallAdmin.Controllers
{
class ModelOptionalRequiredPropertiesAnalyzer_R1 : BaseTest
{
[HttpPost]
public void Ac() {
}
}
}








namespace BrnMall.Web.MallAdmin.Controllers
{
class BaseTest : Controller

{

}
}








 var methodSymbol = semanticModel.GetDeclaredSymbol(methodDeclarationSyntax) as IMethodSymbol;
if (methodSymbol == null)
continue;
//Cannot get to base class
IEnumerable<ITypeSymbol> iTypes = methodSymbol.ContainingType.GetAllTypes();








 public static IEnumerable<ITypeSymbol> GetAllTypes(this ITypeSymbol typeSymbol)
{
while (typeSymbol.BaseType != null)
{
yield return typeSymbol;
typeSymbol = typeSymbol.BaseType;
}
}












share|improve this question
























  • What are you expecting the code to do? What is it instead doing?
    – mjwills
    Nov 12 at 8:51










  • I need to parse the syntax tree of the code Analyze the source code from the syntax tree。 But the syntax tree now parsed has no base class
    – wang.c.y
    Nov 12 at 8:55












  • Roslyn Version is 2.9.0 Visual Studio 2017 Version 15.8
    – wang.c.y
    Nov 12 at 8:57












  • Roslyn parsing ModelOptionalRequiredPropertiesAnalyzer_R1 class There is no BaseTest in the syntax tree
    – wang.c.y
    Nov 12 at 9:02






  • 1




    Your question is unclear for a number of reasons. Where does methodDeclarationSyntax come from? Where is the GetAllTypes() method declared? It appears not to be standard Roslyn method - is it an extension method or something? Incidentally, from my own experimentation, methodSymbol.ContainingType.BaseType seems to quite happily return the base type regardless of whether you declared it yourself.
    – Luke Woodward
    Nov 12 at 13:32













up vote
0
down vote

favorite









up vote
0
down vote

favorite











If you extend the class oneself created, you cannot get the base class description.
If direct extend Controller,you can get the base class description.
Roslyn Version 2.9.0.
I upgraded Roslyn Version from 1.1.0 to 2.9.0.






namespace BrnMall.Web.MallAdmin.Controllers
{
class ModelOptionalRequiredPropertiesAnalyzer_R1 : BaseTest
{
[HttpPost]
public void Ac() {
}
}
}








namespace BrnMall.Web.MallAdmin.Controllers
{
class BaseTest : Controller

{

}
}








 var methodSymbol = semanticModel.GetDeclaredSymbol(methodDeclarationSyntax) as IMethodSymbol;
if (methodSymbol == null)
continue;
//Cannot get to base class
IEnumerable<ITypeSymbol> iTypes = methodSymbol.ContainingType.GetAllTypes();








 public static IEnumerable<ITypeSymbol> GetAllTypes(this ITypeSymbol typeSymbol)
{
while (typeSymbol.BaseType != null)
{
yield return typeSymbol;
typeSymbol = typeSymbol.BaseType;
}
}












share|improve this question















If you extend the class oneself created, you cannot get the base class description.
If direct extend Controller,you can get the base class description.
Roslyn Version 2.9.0.
I upgraded Roslyn Version from 1.1.0 to 2.9.0.






namespace BrnMall.Web.MallAdmin.Controllers
{
class ModelOptionalRequiredPropertiesAnalyzer_R1 : BaseTest
{
[HttpPost]
public void Ac() {
}
}
}








namespace BrnMall.Web.MallAdmin.Controllers
{
class BaseTest : Controller

{

}
}








 var methodSymbol = semanticModel.GetDeclaredSymbol(methodDeclarationSyntax) as IMethodSymbol;
if (methodSymbol == null)
continue;
//Cannot get to base class
IEnumerable<ITypeSymbol> iTypes = methodSymbol.ContainingType.GetAllTypes();








 public static IEnumerable<ITypeSymbol> GetAllTypes(this ITypeSymbol typeSymbol)
{
while (typeSymbol.BaseType != null)
{
yield return typeSymbol;
typeSymbol = typeSymbol.BaseType;
}
}








namespace BrnMall.Web.MallAdmin.Controllers
{
class ModelOptionalRequiredPropertiesAnalyzer_R1 : BaseTest
{
[HttpPost]
public void Ac() {
}
}
}





namespace BrnMall.Web.MallAdmin.Controllers
{
class ModelOptionalRequiredPropertiesAnalyzer_R1 : BaseTest
{
[HttpPost]
public void Ac() {
}
}
}





namespace BrnMall.Web.MallAdmin.Controllers
{
class BaseTest : Controller

{

}
}





namespace BrnMall.Web.MallAdmin.Controllers
{
class BaseTest : Controller

{

}
}





 var methodSymbol = semanticModel.GetDeclaredSymbol(methodDeclarationSyntax) as IMethodSymbol;
if (methodSymbol == null)
continue;
//Cannot get to base class
IEnumerable<ITypeSymbol> iTypes = methodSymbol.ContainingType.GetAllTypes();





 var methodSymbol = semanticModel.GetDeclaredSymbol(methodDeclarationSyntax) as IMethodSymbol;
if (methodSymbol == null)
continue;
//Cannot get to base class
IEnumerable<ITypeSymbol> iTypes = methodSymbol.ContainingType.GetAllTypes();





 public static IEnumerable<ITypeSymbol> GetAllTypes(this ITypeSymbol typeSymbol)
{
while (typeSymbol.BaseType != null)
{
yield return typeSymbol;
typeSymbol = typeSymbol.BaseType;
}
}





 public static IEnumerable<ITypeSymbol> GetAllTypes(this ITypeSymbol typeSymbol)
{
while (typeSymbol.BaseType != null)
{
yield return typeSymbol;
typeSymbol = typeSymbol.BaseType;
}
}






c# roslyn






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited Nov 13 at 2:40

























asked Nov 12 at 8:49









wang.c.y

13




13












  • What are you expecting the code to do? What is it instead doing?
    – mjwills
    Nov 12 at 8:51










  • I need to parse the syntax tree of the code Analyze the source code from the syntax tree。 But the syntax tree now parsed has no base class
    – wang.c.y
    Nov 12 at 8:55












  • Roslyn Version is 2.9.0 Visual Studio 2017 Version 15.8
    – wang.c.y
    Nov 12 at 8:57












  • Roslyn parsing ModelOptionalRequiredPropertiesAnalyzer_R1 class There is no BaseTest in the syntax tree
    – wang.c.y
    Nov 12 at 9:02






  • 1




    Your question is unclear for a number of reasons. Where does methodDeclarationSyntax come from? Where is the GetAllTypes() method declared? It appears not to be standard Roslyn method - is it an extension method or something? Incidentally, from my own experimentation, methodSymbol.ContainingType.BaseType seems to quite happily return the base type regardless of whether you declared it yourself.
    – Luke Woodward
    Nov 12 at 13:32


















  • What are you expecting the code to do? What is it instead doing?
    – mjwills
    Nov 12 at 8:51










  • I need to parse the syntax tree of the code Analyze the source code from the syntax tree。 But the syntax tree now parsed has no base class
    – wang.c.y
    Nov 12 at 8:55












  • Roslyn Version is 2.9.0 Visual Studio 2017 Version 15.8
    – wang.c.y
    Nov 12 at 8:57












  • Roslyn parsing ModelOptionalRequiredPropertiesAnalyzer_R1 class There is no BaseTest in the syntax tree
    – wang.c.y
    Nov 12 at 9:02






  • 1




    Your question is unclear for a number of reasons. Where does methodDeclarationSyntax come from? Where is the GetAllTypes() method declared? It appears not to be standard Roslyn method - is it an extension method or something? Incidentally, from my own experimentation, methodSymbol.ContainingType.BaseType seems to quite happily return the base type regardless of whether you declared it yourself.
    – Luke Woodward
    Nov 12 at 13:32
















What are you expecting the code to do? What is it instead doing?
– mjwills
Nov 12 at 8:51




What are you expecting the code to do? What is it instead doing?
– mjwills
Nov 12 at 8:51












I need to parse the syntax tree of the code Analyze the source code from the syntax tree。 But the syntax tree now parsed has no base class
– wang.c.y
Nov 12 at 8:55






I need to parse the syntax tree of the code Analyze the source code from the syntax tree。 But the syntax tree now parsed has no base class
– wang.c.y
Nov 12 at 8:55














Roslyn Version is 2.9.0 Visual Studio 2017 Version 15.8
– wang.c.y
Nov 12 at 8:57






Roslyn Version is 2.9.0 Visual Studio 2017 Version 15.8
– wang.c.y
Nov 12 at 8:57














Roslyn parsing ModelOptionalRequiredPropertiesAnalyzer_R1 class There is no BaseTest in the syntax tree
– wang.c.y
Nov 12 at 9:02




Roslyn parsing ModelOptionalRequiredPropertiesAnalyzer_R1 class There is no BaseTest in the syntax tree
– wang.c.y
Nov 12 at 9:02




1




1




Your question is unclear for a number of reasons. Where does methodDeclarationSyntax come from? Where is the GetAllTypes() method declared? It appears not to be standard Roslyn method - is it an extension method or something? Incidentally, from my own experimentation, methodSymbol.ContainingType.BaseType seems to quite happily return the base type regardless of whether you declared it yourself.
– Luke Woodward
Nov 12 at 13:32




Your question is unclear for a number of reasons. Where does methodDeclarationSyntax come from? Where is the GetAllTypes() method declared? It appears not to be standard Roslyn method - is it an extension method or something? Incidentally, from my own experimentation, methodSymbol.ContainingType.BaseType seems to quite happily return the base type regardless of whether you declared it yourself.
– Luke Woodward
Nov 12 at 13:32

















active

oldest

votes











Your Answer






StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");

StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);

StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});

function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});


}
});














draft saved

draft discarded


















StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53258563%2frolsyn-cant-get-basetype%23new-answer', 'question_page');
}
);

Post as a guest















Required, but never shown






























active

oldest

votes













active

oldest

votes









active

oldest

votes






active

oldest

votes
















draft saved

draft discarded




















































Thanks for contributing an answer to Stack Overflow!


  • Please be sure to answer the question. Provide details and share your research!

But avoid



  • Asking for help, clarification, or responding to other answers.

  • Making statements based on opinion; back them up with references or personal experience.


To learn more, see our tips on writing great answers.





Some of your past answers have not been well-received, and you're in danger of being blocked from answering.


Please pay close attention to the following guidance:


  • Please be sure to answer the question. Provide details and share your research!

But avoid



  • Asking for help, clarification, or responding to other answers.

  • Making statements based on opinion; back them up with references or personal experience.


To learn more, see our tips on writing great answers.




draft saved


draft discarded














StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53258563%2frolsyn-cant-get-basetype%23new-answer', 'question_page');
}
);

Post as a guest















Required, but never shown





















































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown

































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown







Popular posts from this blog

Xamarin.iOS Cant Deploy on Iphone

Glorious Revolution

Dulmage-Mendelsohn matrix decomposition in Python