示例#1
0
		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));
		}
示例#2
0
		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}";
      }
示例#3
0
		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));
		}