public void DissectSimpleType() { var dissector = new TypeDissector(typeof(int)); Assert.IsFalse(dissector.IsArray, nameof(dissector.IsArray)); Assert.IsFalse(dissector.IsByRef, nameof(dissector.IsByRef)); Assert.IsFalse(dissector.IsPointer, nameof(dissector.IsPointer)); Assert.AreEqual(typeof(int), dissector.RootType, nameof(dissector.RootType)); Assert.AreEqual("Int32", dissector.SafeName, nameof(dissector.SafeName)); }
internal static string GetFullName(this Type @this, SortedSet<string> namespaces) { var dissector = new TypeDissector(@this); var pointer = dissector.IsPointer ? "*" : string.Empty; var array = dissector.IsArray ? "[]" : string.Empty; return $"{dissector.SafeName}{dissector.RootType.GetGenericArguments(namespaces).Arguments}{pointer}{array}"; }
public void DissectByRefArrayType() { var type = this.GetType().GetMethod(nameof(this.TargetWithByRefArray)).GetParameters()[0].ParameterType; var dissector = new TypeDissector(type); Assert.IsTrue(dissector.IsArray, nameof(dissector.IsArray)); Assert.IsTrue(dissector.IsByRef, nameof(dissector.IsByRef)); Assert.IsFalse(dissector.IsPointer, nameof(dissector.IsPointer)); Assert.AreEqual(typeof(int), dissector.RootType, nameof(dissector.RootType)); Assert.AreEqual("Int32", dissector.SafeName, nameof(dissector.SafeName)); }