2014-11-11 5 views
0

RefEx을 사용하여 DevExpress.XtraGrid 어셈블리의 모든 유형을 가져 오지만 Windows 응용 프로그램에서 ReflectionTypeLoadException을 발생시킵니다. 내 코드 :DevExpress.XtraGrid DLL에 대한 반사가 작동하지 않습니다.

var DLL = Assembly.LoadFile(@"D:\References\DevExpress.XtraGrid.v7.3.dll"); 
var theType1 = DLL1.GetTypes();//exception here 

이 사실 나는 dll.just 내 유형 DevExpress.XtraGrid.Columns.GridColumn 클래스의 모든 속성을 얻으려면 그것의 mentioned.I이 원하는 유형에 대한 못하고 모든 유형을 얻기 위해 노력 :

var DLL1 = Assembly.LoadFile(@"D:\References\DevExpress.XtraGrid.v7.3.dll"); 
var theType1 = DLL1.GetType("DevExpress.XtraGrid.Columns.GridColumn");//theType1 is giving null 

System.Windows.Forms.Label Type for System.Windows.Forms dll에서 동일한 테스트를 거쳤습니다. DevExpress 컨트롤을 사용하지 않은 이유는 완벽했습니다.

~ Deepthi

+0

DLL DevExpress.XtraGrid하는 데 필요한 모든 DLL을로드 할 생각에 달려 있기 때문에 그렇습니다 당신은 오류가 발생합니다 그래서 테스트 할 수는 없지만 내 배팅은 난독 화를 사용하고 있으며 리플렉션에 필요한 정보가 런타임에 없습니다.이 경우 응답은 "이 작업을 수행 할 수 없습니다"라고 msdn에 –

+0

: [If GetTypes 메서드는 어셈블리에서 호출되며 해당 어셈블리의 형식은로드되지 않은 어셈블리의 형식 (예 : 두 번째 어셈블리의 형식에서 파생 된 형식)에 따라 달라 지므로 ReflectionTypeLoadException이 throw됩니다. 또한 GetTypes 메서드가 호출 될 때 두 번째 어셈블리를 찾을 수없는 경우 Load 및 LoadFile 메서드를 사용하여로드 된 어셈블리에서도 발생할 수 있습니다.] (http://msdn.microsoft.com/en-us/library/system.reflection.assembly .gettypes (v = vs.110) .aspx) 아마도 다른 DLL을로드해야 할 수도 있습니다. – Grundy

+0

단일 매개 변수를 취하고 원래 코드를 게시하는'GetTypes'가 없습니다. –

답변

0

DevExpress.XtraGrid 다른 dll.i 당신은 내가 DevExpress의가없는

+0

안녕하세요 pramod, DevExpress.XtraGrid의 모든 종속 DLL을 어떻게 알 수 있습니까? DevExpress의 dll.Searching 웹 사이트, 단서 없음. – Deepthi

+0

@Deepthi 상위 버전을 사용 중입니다. –

+0

DevExpress.data, DevExpress.printing, DevExpress.Utils, DevExpress.xtraeditor, DevExpress.xtraeditor, DevExpress.xtra 인쇄이 버전에서이 dll은 –

관련 문제