2014-12-15 1 views
1

첫 번째로 서명되지 않은 어셈블리에서 서명 콘솔 응용 프로그램 내에서 방법을 실행하지만 난 해요 아직 학습 과정에 있는데, 그건 내가 묻는 방식이다.일반적으로 .NET 및 모든 것에 대해 나의 무지 죄송 <p></p>, 나는 그것으로 오랫동안 일한지, 반사 모두의

나는 반사에 대해 배우고 그리고 난 다음 시도 할 때 나는 연습을했다 :

내가이 서명 조립 및 모든 확인에 서명되지 않은 참조를 추가; 컴파일러는 참조가 강한 이름이 아니었다 고 말했습니다.

하지만 MethodInfo.Invoke(null, null)을 사용하여 정적 메서드를 호출하면 완벽하게 작동했습니다.

구성 탭 페이지에서 프로젝트 (콘솔 1 만)에 서명했습니다. 누군가가 나에게 더 나은

문제를 설명 할 수

내가 이해하지 못한다는 것입니다 : 반사에 의해 호출 할 때 서명 된 어셈블리에 작동하는 이유는 어셈블리가 서명되지

합니다.

감사합니다,

내 코드

유일한 클래스 서명 조립 (콘솔 응용 프로그램) 프로젝트에서 코드 :

: 유일한 클래스 NON에서 코드는 어셈블리 프로젝트를 체결
using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using System.Reflection; 

namespace ConsoleApplication1 
{ 
    class Program 
    { 
     static void Main(string[] args) 
     { 

      Assembly a = Assembly.LoadFrom(
       @"path\ClassLibrary1.dll"); 

      var m= a.GetType("ClassLibrary1.ZZ"); 
      MethodInfo met = m.GetMethod("TroskisTroskis"); 
      met.Invoke(null,null); 


      Console.ReadKey(true); 
     } 
    } 
} 

using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using System.Threading; 

namespace ClassLibrary1 
{ 
    public static class ZZ 
    { 
     public static void TroskisTroskis() 
     { 
      Thread.Sleep(1000); 
     } 
    } 
} 

감사합니다.

+1

당신은 무엇을 이해하지 못합니까? 당신이 작업 코드를 게시 한 것처럼 보입니다 ...!? –

+0

그것은 작동하지 않는다, 그것은 서명되지 않았다 – MirlvsMaximvs

+1

중복 된 질문이 아니라 옳은 대답 [here] (http://stackoverflow.com/a/14859591/1081897) –

답변

0

서명 된 어셈블리는 서명되지 않은 어셈블리를 참조 할 수 없지만 나중에 서명 할 수 있습니다 (로드).

관련 문제