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;
}
}
c# roslyn
|
show 1 more comment
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;
}
}
c# roslyn
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 doesmethodDeclarationSyntax
come from? Where is theGetAllTypes()
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
|
show 1 more comment
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;
}
}
c# roslyn
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
c# roslyn
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 doesmethodDeclarationSyntax
come from? Where is theGetAllTypes()
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
|
show 1 more comment
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 doesmethodDeclarationSyntax
come from? Where is theGetAllTypes()
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
|
show 1 more comment
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
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
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
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.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
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
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
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
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 theGetAllTypes()
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