2015-01-30 1 views
1

필자는 범용 응용 프로그램에 휴대용 구성 요소가 있으므로 .NET Portable v.4.6을 사용합니다. 그 구성 요소에서, myType 변수가 Type으로 정의 된 유형이 특정 인터페이스 IMyinterface을 구현하는지 확인하려고합니다.Type 변수로 정의 된 형식이 .NET Portable에서 인터페이스를 구현하는지 확인하십시오.

그러나, 이러한 방법을 사용할 수 없습니다 : 나는 표준 .NET 프레임 워크를 사용한 경우

(typeof(IMyinterface).IsAssignableFrom(myType)) == true

이 (http://www.hanselman.com/blog/DoesATypeImplementAnInterface.aspx 참조) 경우 myType.GetInterface("MyClass.IMyinterface") != null

또는 경우

, 내가 확인할 수 있습니다 .NET 휴대용 v.4.6에서. 이 경우이 수표를 어떻게 할 수 있습니까?

답변

1

난 당신이 사용하여 다음과 같은 추가해야합니다 추측에는 요 :

(typeof(IMyinterface).GetTypeInfo().IsAssignableFrom(myType.GetTypeInfo())) == true 
0

이 예외는 발생하지 않지만 myType은 null이 될 수 있습니다.

using System.Reflection; 

을 다음과 같이 검사를 수행합니다

var myObject = myType as IMyinterface 

//Error proof the assignment to interface. 
if (typeof(IMyinterface) == myType.GetType()) 
{ 
    //code 
} 

또는

if (myType != null) 
{ 
    //Code 
} 

또는

if (myType is IMyinterface) 
    { 

    } 
+0

나는 이것들을 테스트했지만 저에게는 적합하지 않습니다. 위의 모든 검사에서 myType 대신 myObject를 확인한다고 가정합니다. 문제는'myObject'가'IMyinterface' 인터페이스를 구현하는지 여부에 관계없이'myObject'는 항상'null'입니다. – Zni

관련 문제