public void TypeVariables() { var intrinsicSource = @".class private abstract sealed beforefieldinit specialname '<>c__TypeVariables'<T,U,V> { .method public hidebysig specialname rtspecialname instance void .ctor() { ret } }"; ImmutableArray <byte> assemblyBytes; ImmutableArray <byte> pdbBytes; CommonTestBase.EmitILToArray(intrinsicSource, appendDefaultHeader: true, includePdb: false, assemblyBytes: out assemblyBytes, pdbBytes: out pdbBytes); var assembly = ReflectionUtilities.Load(assemblyBytes); var reflectionType = assembly.GetType(ExpressionCompilerConstants.TypeVariablesClassName).MakeGenericType(new[] { typeof(object), typeof(object), typeof(object[]) }); var value = CreateDkmClrValue(value: null, type: reflectionType, valueFlags: DkmClrValueFlags.Synthetic); var evalResult = FormatResult("typevars", "typevars", value, new DkmClrType((TypeImpl)reflectionType), MakeCustomTypeInfo(false, true, false, false, true)); Verify(evalResult, EvalResult("Type variables", "", "", null, DkmEvaluationResultFlags.Expandable | DkmEvaluationResultFlags.ReadOnly, DkmEvaluationResultCategory.Data)); var children = GetChildren(evalResult); Verify(children, EvalResult("T", "dynamic", "dynamic", null, DkmEvaluationResultFlags.ReadOnly, DkmEvaluationResultCategory.Data), EvalResult("U", "object", "object", null, DkmEvaluationResultFlags.ReadOnly, DkmEvaluationResultCategory.Data), EvalResult("V", "dynamic[]", "dynamic[]", null, DkmEvaluationResultFlags.ReadOnly, DkmEvaluationResultCategory.Data)); }
public void Member() { var source = @".field static assembly int32 s_val .class public C { .method public hidebysig specialname rtspecialname instance void .ctor() { ret } .method public instance int32* modopt([mscorlib]System.Runtime.CompilerServices.IsImplicitlyDereferenced) get_P() { ldsflda int32 s_val ret } .property instance int32* modopt([mscorlib]System.Runtime.CompilerServices.IsImplicitlyDereferenced) P() { .get instance int32* modopt([mscorlib]System.Runtime.CompilerServices.IsImplicitlyDereferenced) C::get_P() } }"; ImmutableArray <byte> assemblyBytes; ImmutableArray <byte> pdbBytes; CommonTestBase.EmitILToArray(source, appendDefaultHeader: true, includePdb: false, assemblyBytes: out assemblyBytes, pdbBytes: out pdbBytes); var assembly = ReflectionUtilities.Load(assemblyBytes); var type = assembly.GetType("C"); var value = CreateDkmClrValue(type.Instantiate(), type); var evalResult = FormatResult("o", value); Verify(evalResult, EvalResult("o", "{C}", "C", "o", DkmEvaluationResultFlags.Expandable, DkmEvaluationResultCategory.Other)); var children = GetChildren(evalResult); Verify(children, EvalResult("P", "0", "int*", "o.P", DkmEvaluationResultFlags.None, DkmEvaluationResultCategory.Property)); }
internal static ModuleInstance GetModuleInstanceForIL(string ilSource) { ImmutableArray <byte> peBytes; ImmutableArray <byte> pdbBytes; CommonTestBase.EmitILToArray(ilSource, appendDefaultHeader: true, includePdb: true, assemblyBytes: out peBytes, pdbBytes: out pdbBytes); return(ModuleInstance.Create(peBytes, SymReaderFactory.CreateReader(pdbBytes), includeLocalSignatures: true)); }