Quantcast
Channel: Visual Studio Integrate forum
Viewing all articles
Browse latest Browse all 4410

Debug eval api: get concrete type of nullable property

$
0
0

I'm trying to get the real type of a nullable property from within an debug evaluator, but while for fields I get the right type arguments, for properties I don't:

Given code like this:

class Test {
  public static int? i2 = 15;
  public static int? i { get { return a; } set { a = value; }}
}

And evaluator code like:

uint fetched;
container.EnumFields(
	  unchecked(enum_FIELD_KIND.FIELD_KIND_ALL),
	  enum_FIELD_MODIFIERS.FIELD_MOD_ALL,
	  null,
	  NAME_MATCH.nmCaseInsensitive,
	  out children);
children.GetCount(out fetched);
IDebugField[] fields = new IDebugField[fetched];
fetched = 0;
children.Next((uint)fields.Length, fields, ref fetched);
for (int i = 0; i < fetched; i++)
{
	var fi = new FIELD_INFO[1];
	fields[i].GetInfo(enum_FIELD_INFO_FIELDS.FIF_ALL, fi);
	if (!fi[0].bstrName.StartsWith("i")) continue;
	System.Diagnostics.Debug.WriteLine("Name: " + fi[0].bstrFullName);
	System.Diagnostics.Debug.WriteLine("Type: " + fi[0].bstrType);
	IDebugField ty;
	fields[i].GetType(out ty);
	IDebugGenericFieldInstance gen = ty as IDebugGenericFieldInstance;
	uint count = 0;
	gen.TypeArgumentCount(ref count);
	System.Diagnostics.Debug.WriteLine("Type GenArg Count: " + count);

}


I'm getting this:

Name: i
Type: <unnamed>
Type GenArg Count: 0

Name: i2
Type: System.Nullable
Type GenArg Count: 1

So for the static field I am getting a proper generic type, for the property I don't. What am I doing wrong to get the type of the property?


Carlo Kok


Viewing all articles
Browse latest Browse all 4410

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>