示例#1
0
        public void Can_be_itself_and_object()
        {
            IType testing = BuildRoutine.VirtualType().FromBasic();

            Assert.IsTrue(testing.CanBe(type.of <object>()));
            Assert.IsFalse(testing.CanBe(type.of <string>()));
        }
示例#2
0
        public void Can_be_one_of_its_assignable_types()
        {
            var virtualInterface = BuildRoutine.VirtualType().FromBasic()
                                   .Name.Set("IVirtual")
                                   .Namespace.Set("Routine")
                                   .IsInterface.Set(true);

            IType testing = BuildRoutine.VirtualType().FromBasic()
                            .Name.Set("Virtual")
                            .Namespace.Set("Routine")
                            .AssignableTypes.Add(virtualInterface)
            ;

            Assert.IsTrue(testing.CanBe(virtualInterface));
            Assert.IsFalse(testing.CanBe(type.of <string>()));
        }
 public static bool CanBeCollection(this IType source, IType itemType) =>
 source.CanBe <ICollection>() &&
 source.IsGenericType && source.GetGenericArguments()[0].CanBe(itemType) ||
 source.IsArray && source.GetElementType().CanBe(itemType);
 public static bool CanBe <T>(this IType source) => source.CanBe(type.of <T>());