NSoft.NFramework.Tools.TypeTool.IsSameOrSubclassOrImplementedOf C# (CSharp) 메소드

IsSameOrSubclassOrImplementedOf() 공개 정적인 메소드

지정된 srcType이 baseType과 같거나 상속받은 클래스인가 또는 baseType이 Interface이고, 이 인터페이스를 구현한 것인지 검사한다.
public static IsSameOrSubclassOrImplementedOf ( Type srcType, Type baseType ) : bool
srcType System.Type 검사할 타입
baseType System.Type 기본 타입
리턴 bool
        public static bool IsSameOrSubclassOrImplementedOf(Type srcType, Type baseType) {
            if(srcType == null || baseType == null)
                return false;

            if(IsSameOrSubclassOf(srcType, baseType))
                return true;

            if(baseType.IsInterface)
                return srcType.GetInterfaces().Any(intfType => intfType == baseType);

            return false;
        }

Same methods

TypeTool::IsSameOrSubclassOrImplementedOf ( object target, Type baseType ) : bool

Usage Example

예제 #1
0
        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)));
        }