Silverlight 프로젝트에서 프로그램 집합의 인용 정보를 얻습니다
1886 단어 silverlight
var assembly = Assembly.LoadFrom(assemblyFile);
var references = assembly.GetReferencedAssemblies();
획득한references 대상은 AssemblyName 그룹입니다. 이 대상은 프로그램 집합의 모든 인용 정보를 포함하고 AssemblyName 클래스에 대한 정보는 참고할 수 있습니다 MSDN의 해당 문서.
모두가 알다시피 프로그램 집합의 인용 정보를 얻는 것은 플러그인식 개발에 매우 중요하지만 Silverlight 환경에서Assembly류는 그런 방법이 없어요. 우리는 반사로 프로그램 집합의 인용 정보를 얻을 수 없다.다행히도 우리는 기원된 Mono.Cecil 프로젝트가 있고, Cecil은 이미 Silverlight를 완전하게 지원하기 시작했기 때문에 프로그램 집합의 인용 정보를 얻기 위해 Cecil이 필요하다.
우선 Cecil의 원본 코드를 가져와서 Silverlight 라이브러리로 컴파일해야 합니다. 이것은 매우 쉽습니다.Cecil의 github 사이트 액세스만 최신 버전의 원본 코드를 다운로드한 후 설정을silverlight 로 수정합니다release 또는 silverlightdebug를 컴파일하면 됩니다.
그런 다음 Silverlight 프로젝트에 Cecil에 대한 참조를 추가하면 사용할 수 있습니다. Cecil을 사용하여 프로그램 세트를 가져오는 코드는 다음과 같습니다.
var entryPointPart = Deployment.Current.Parts.First(asmPart => asmPart.Source == assemblyName);
var entryPointResourceInfo = Application.GetResourceStream(new Uri(entryPointPart.Source, UriKind.Relative));
var asmDef = AssemblyDefinition.ReadAssembly(entryPointResourceInfo.Stream);
var references = asmDef.MainModule.AssemblyReferences.ToArray();
이렇게 획득한references 대상은 Mono입니다.Cecil.AssemblyNameReference 배열, AssemblyNameReference 및.Net 환경의 AssemblyName은 프로그램 집합의 모든 참조 정보를 포함하는 것과 유사합니다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Silverlight animation performanceAnimation performance can be improved with several configurations: Desired Frame Rate Configure in the WEB project: Hard...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.