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
DLL DevExpress.XtraGrid하는 데 필요한 모든 DLL을로드 할 생각에 달려 있기 때문에 그렇습니다 당신은 오류가 발생합니다 그래서 테스트 할 수는 없지만 내 배팅은 난독 화를 사용하고 있으며 리플렉션에 필요한 정보가 런타임에 없습니다.이 경우 응답은 "이 작업을 수행 할 수 없습니다"라고 msdn에 –
: [If GetTypes 메서드는 어셈블리에서 호출되며 해당 어셈블리의 형식은로드되지 않은 어셈블리의 형식 (예 : 두 번째 어셈블리의 형식에서 파생 된 형식)에 따라 달라 지므로 ReflectionTypeLoadException이 throw됩니다. 또한 GetTypes 메서드가 호출 될 때 두 번째 어셈블리를 찾을 수없는 경우 Load 및 LoadFile 메서드를 사용하여로드 된 어셈블리에서도 발생할 수 있습니다.] (http://msdn.microsoft.com/en-us/library/system.reflection.assembly .gettypes (v = vs.110) .aspx) 아마도 다른 DLL을로드해야 할 수도 있습니다. – Grundy
단일 매개 변수를 취하고 원래 코드를 게시하는'GetTypes'가 없습니다. –