public static void Instance() { var myObject = new MyObject(0, false); var instanceClass = new InstanceClass(); Assert.AreEqual(Name.Of(instanceClass.InstanceClassNullableTypeField), "InstanceClassNullableTypeField"); Assert.AreEqual(Name.Of(instanceClass.InstanceClassSystemValueTypeField), "InstanceClassSystemValueTypeField"); Assert.AreEqual(Name.Of(instanceClass.InstanceClassSystemReferenceTypeField), "InstanceClassSystemReferenceTypeField"); Assert.AreEqual(Name.Of(instanceClass.InstanceClassValueTypeField), "InstanceClassValueTypeField"); Assert.AreEqual(Name.Of(instanceClass.InstanceClassReferenceTypeField), "InstanceClassReferenceTypeField"); Assert.AreEqual(Name.Of(instanceClass.InstanceClassValueTypeDelegateField), "InstanceClassValueTypeDelegateField"); Assert.AreEqual(Name.Of(instanceClass.InstanceClassReferenceTypeDelegateField), "InstanceClassReferenceTypeDelegateField"); Assert.AreEqual(Name.Of(instanceClass.InstanceClassDelegateField), "InstanceClassDelegateField"); Assert.AreEqual(Name.Of(instanceClass.InstanceClassNullableTypeProperty), "InstanceClassNullableTypeProperty"); Assert.AreEqual(Name.Of(instanceClass.InstanceClassSystemValueTypeProperty), "InstanceClassSystemValueTypeProperty"); Assert.AreEqual(Name.Of(instanceClass.InstanceClassSystemReferenceTypeProperty), "InstanceClassSystemReferenceTypeProperty"); Assert.AreEqual(Name.Of(instanceClass.InstanceClassValueTypeProperty), "InstanceClassValueTypeProperty"); Assert.AreEqual(Name.Of(instanceClass.InstanceClassReferenceTypeProperty), "InstanceClassReferenceTypeProperty"); Assert.AreEqual(Name.Of(instanceClass.InstanceClassValueTypeDelegateProperty), "InstanceClassValueTypeDelegateProperty"); Assert.AreEqual(Name.Of(instanceClass.InstanceClassReferenceTypeDelegateProperty), "InstanceClassReferenceTypeDelegateProperty"); Assert.AreEqual(Name.Of(instanceClass.InstanceClassDelegateProperty), "InstanceClassDelegateProperty"); Assert.AreEqual(Name.Of(instanceClass.InstanceClassNullableTypeMethod), "InstanceClassNullableTypeMethod"); Assert.AreEqual(Name.Of(instanceClass.InstanceClassSystemValueTypeMethod), "InstanceClassSystemValueTypeMethod"); Assert.AreEqual(Name.Of(instanceClass.InstanceClassSystemValueTypeMethod()), "InstanceClassSystemValueTypeMethod"); Assert.AreEqual(Name.Of(instanceClass.InstanceClassSystemReferenceTypeMethod()), "InstanceClassSystemReferenceTypeMethod"); Assert.AreEqual(Name.Of(instanceClass.InstanceClassSystemReferenceTypeMethodWithParameters(default(Object))), "InstanceClassSystemReferenceTypeMethodWithParameters"); //Assert.AreEqual(Name.Of(instanceClass.InstanceClassSystemReferenceTypeMethodWithParameters(default(Object), default(Int32), default(Int64), default(Boolean), default(Struct), default(Struct))), "InstanceClassSystemReferenceTypeMethodWithParameters"); // ldloc.0 // ldfld class AssemblyToProcess.InstanceClass AssemblyToProcess.Invocations/<>c__DisplayClass43::instanceClass // callvirt instance string AssemblyToProcess.InstanceClass::InstanceClassSystemReferenceTypeMethod() // call string [Name.Of]Name::Of(object) //Assert.AreEqual(Name.Of(instanceClass.InstanceClassSystemReferenceTypeMethod(default(Object), default(Int32), default(Struct))), "InstanceClassSystemReferenceTypeMethod"); // ldloc.0 // ldfld class AssemblyToProcess.InstanceClass AssemblyToProcess.Invocations/<>c__DisplayClass43::instanceClass // ldnull // ldc.i4.0 // ldloca.s CS$0$0000 // initobj AssemblyToProcess.Invocations/Struct // ldloc.1 // callvirt instance string AssemblyToProcess.InstanceClass::InstanceClassSystemReferenceTypeMethod(object, int32, valuetype AssemblyToProcess.Invocations/Struct) // call string [Name.Of]Name::Of(object) Assert.AreEqual(Name.Of(instanceClass.InstanceClassValueTypeMethod), "InstanceClassValueTypeMethod"); Assert.AreEqual(Name.Of(instanceClass.InstanceClassReferenceTypeMethod), "InstanceClassReferenceTypeMethod"); Assert.AreEqual(Name.Of(instanceClass.InstanceClassValueTypeGenericMethod <V>), "InstanceClassValueTypeGenericMethod"); Assert.AreEqual(Name.Of(instanceClass.InstanceClassReferenceTypeGenericMethod <R, V, R, R>), "InstanceClassReferenceTypeGenericMethod"); Assert.AreEqual(Name.Of(instanceClass.InstanceClassValueTypeDelegateMethod), "InstanceClassValueTypeDelegateMethod"); Assert.AreEqual(Name.Of(instanceClass.InstanceClassReferenceTypeDelegateMethod), "InstanceClassReferenceTypeDelegateMethod"); Assert.AreEqual(Name.Of(instanceClass.InstanceClassDelegateMethod), "InstanceClassDelegateMethod"); Assert.AreEqual(Name.OfVoid(instanceClass.InstanceClassVoidMethod), "InstanceClassVoidMethod"); Assert.AreEqual(Name.OfVoid(instanceClass.InstanceClassVoidGenericMethod <R>), "InstanceClassVoidGenericMethod"); Assert.AreEqual(Name.Of(e => instanceClass.InstanceClassEvent += e), "InstanceClassEvent"); }
public static void Member() { Assert.AreEqual(Name.Of(Method), "Method"); // ldnull // ldftn object AssemblyToProcess.Invocations::Method() // newobj instance void [mscorlib]System.Func`1<object>::.ctor(object, native int) // call string [Name.Of]Name::Of<object>(class [mscorlib]System.Func`1<!!0>) Assert.AreEqual(Name.OfVoid(VoidMethod), "VoidMethod"); // ldnull // ldftn void AssemblyToProcess.Invocations::VoidMethod() // newobj instance void [mscorlib]System.Action::.ctor(object, native int) // call string [Name.Of]Name::OfVoid(class [mscorlib]System.Action) Assert.AreEqual(Name.Of(valueTypeField), "valueTypeField"); // ldsfld bool AssemblyToProcess.Invocations::valueTypeField // box bool // call string [Name.Of]Name::Of(object) Assert.AreEqual(Name.Of(referenceTypeField), "referenceTypeField"); // ldsfld bool AssemblyToProcess.Invocations::valueTypeField // box bool // call string [Name.Of]Name::Of(object) Assert.AreEqual(Name.Of(ValueTypeProperty), "ValueTypeProperty"); // call bool AssemblyToProcess.Invocations::get_ValueTypeProperty() // box bool // call string [Name.Of]Name::Of(object) Assert.AreEqual(Name.Of(ReferenceTypeProperty), "ReferenceTypeProperty"); // call string AssemblyToProcess.Invocations::get_ReferenceTypeProperty() // call string [Name.Of]Name::Of(object) var instanceClass = new InstanceClass(); Assert.AreEqual(Name.OfVoid(instanceClass.Run), "Run"); instanceClass.Run(); }