Type과 관련된 Utility Class.
        public void IsSameOrSubclassOrImplementOf_Test()
        {
            var deflate = new DeflateCompressor();

            Assert.IsTrue(TypeTool.IsSameOrSubclassOrImplementedOf(deflate, typeof(ICompressor)));

            Assert.IsTrue(TypeTool.IsSameOrSubclassOrImplementedOf(typeof(GZipCompressor), typeof(ICompressor)));

            Assert.IsFalse(TypeTool.IsSameOrSubclassOrImplementedOf(typeof(Compressor), typeof(ICompressor)));
        }
        public void IsSameOrSubclassOf_Test()
        {
            var typeCovertableDynamicAccessor = new TypeConvertableDynamicAccessor(typeof(GZipCompressor));

            Assert.IsTrue(TypeTool.IsSameOrSubclassOf(typeCovertableDynamicAccessor, typeof(DynamicAccessor)));

            Assert.IsTrue(TypeTool.IsSameOrSubclassOf(typeof(TypeConvertableDynamicAccessor), typeof(DynamicAccessor)));

            Assert.IsFalse(TypeTool.IsSameOrSubclassOf(typeof(IDynamicAccessor), typeof(DynamicAccessor)));
            Assert.IsFalse(TypeTool.IsSameOrSubclassOf(typeof(StringTool), typeof(DynamicAccessor)));
        }