示例#1
0
        public void Can_Parse_FQN_String()
        {
            var type   = typeof(TypeConversionTests);
            var fqn1   = FQN.FromType(type);
            var fqnStr = fqn1.ToString();
            var fqn2   = FQN.FromString(fqnStr);

            Assert.AreEqual(fqnStr, fqn2.ToString());
        }
        public static bool IsTypeOf(this TypeReference tr1, TypeReference tr2)
        {
            if (tr1 == null || tr2 == null)
            {
                return(false);
            }

            return(FQN.FromTypeReference(tr1).Equals(FQN.FromTypeReference(tr2)));
        }
示例#3
0
        public void Can_Parse_FQN_With_Open_Generics_String()
        {
            var type   = typeof(TestType <> .TestClass <,>);
            var fqn1   = FQN.FromType(type);
            var fqnStr = fqn1.ToString();
            var fqn2   = FQN.FromString(fqnStr);

            Assert.AreEqual(fqnStr, fqn2.ToString());
        }
示例#4
0
        public void Closed_Generic_FQN_Matches()
        {
            var type = typeof(TestType <List <int> > .TestClass <string, short>);

            var module = ModuleDefinition.CreateModule("main", ModuleKind.Dll);
            var tr     = module.Import(type);

            var fqn1 = FQN.FromType(type);
            var fqn2 = FQN.FromTypeReference(tr);

            Assert.AreEqual(fqn1.ToString(), fqn2.ToString());
        }
示例#5
0
        public void FQN_Matches()
        {
            var type = typeof(TypeConversionTests);

            var module = ModuleDefinition.CreateModule("main", ModuleKind.Dll);
            var tr     = module.Import(type);

            var fqn1 = FQN.FromType(type);
            var fqn2 = FQN.FromTypeReference(tr);

            Assert.AreEqual(fqn1.ToString(), fqn2.ToString());
        }
        public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer)
        {
            var value = JToken.Load(reader).Value <string>();

            if (string.IsNullOrEmpty(value))
            {
                return(null);
            }

            var tr = FQN.FromString(value).ToTypeReference(_reference);

            if (objectType == typeof(TypeDefinition))
            {
                return(tr.Resolve());
            }

            return(tr);
        }
 /// <summary>
 ///     Returns the hashcode of this object.
 /// </summary>
 /// <returns>An integer equal to the hash of the FQN of this object.</returns>
 public override int GetHashCode()
 {
     return(FQN.GetHashCode());
 }
示例#8
0
        public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
        {
            var td = (TypeReference)value;

            JToken.FromObject(FQN.FromTypeReference(td).ToString(), serializer).WriteTo(writer);
        }
        //public static bool IsSubTypeOf(this TypeDefinition tr, Type type)
        //{
        //    var subTypeFqn = FQN.FromType(type);

        //    var isSubType = false;

        //    do
        //    {
        //        isSubType = FQN.FromTypeReference(tr).Equals(subTypeFqn);
        //        tr = tr.BaseType.Resolve();
        //    } while (tr != null);

        //    return isSubType;
        //}

        internal static FQN GetFQN(this TypeReference type)
        {
            return(FQN.FromTypeReference(type));
        }
 public static bool IsTypeOf(this TypeReference tr, Type type)
 {
     return(FQN.FromTypeReference(tr).Equals(FQN.FromType(type)));
 }