.NET Framework 3.5에서 C#을 사용하여 응용 프로그램을 개발하고 있습니다. 응용 프로그램에서 여러 dll (또한 C#에서 개발 된)에서 여러 개체를 사용하여 리플렉션을 사용하여 만듭니다.System.Security.Permissions.MediaPermission dll에서 이미지로드시 예외
private AApplication BuildApplication(string path)
{
Assembly appAssembly = Assembly.LoadFrom(path);
Type[] typeArray = appAssembly.GetTypes();
foreach (Type t in typeArray)
{
if (typeof(AApplication).IsAssignableFrom(t))
{
ConstructorInfo ci = t.GetConstructor(new Type[0]);
AApplication app = ci.Invoke(null) as AApplication;
return app;
}
}
return null;
}
추상 클래스 AApplication는 자원과 같은 이미지가 (AppsLibrary라는 이름의) 또 다른 라이브러리에있는 모든이 추상 클래스 (AApplication)를 확장 오브젝트.
protected BitmapImage GetImage(string path)
{
BitmapImage bmp = new BitmapImage();
bmp.BeginInit();
bmp.UriSource = new Uri(path, UriKind.RelativeOrAbsolute);
bmp.CacheOption = BitmapCacheOption.OnLoad;
bmp.CreateOptions = BitmapCreateOptions.None;
bmp.EndInit();
return bmp;
}
문제 : I는 다른 DLL에서 예외 AApplication에서 파생 된 클래스에서이 방법 (된 GetImage)를 호출 할 때 발생
을이 클래스는 이미지를로드하는 간단한 방법이있다 'System.Security.Permissions.MediaPermission, WindowsBase, Version = 3.0.0.0, Culture = 중립, PublicKeyToken = 31bf3856ad364e35'.
System.Security.CodeAccessSecurityEngine.Check (개체 수요, StackCrawlMark & stackMark, 부울 isPermSet) MS.Internal.PresentationCore.SecurityHelper.DemandMediaPermission (MediaPermissionAudio audioPermissionToDemand, MediaPermissionVideo videoPermissionToDemand 엔 System.Security.CodeAccessPermission.Demand() 엔 System.Windows.Media.Imaging.BitmapDecoder.CreateFromUriOrStream (URI 기저 URI, URI 우리당 스트림 스트림 BitmapCreateOptions createOptions, BitmapCacheOption cacheOption, RequestCachePolicy uriCachePolicy EN System.Windows.Media.Imaging.BitmapDecoder.DemandIfImageBlocked() EN, MediaPermissionImage imagePermissionToDemand) , Boolean insertInDecoderCache) 한국 (한국어)
이 이상한 것은 예외 만에 발생되는 System.Windows.Media.Imaging.BitmapImage.EndInit() 엔 AppsLibrary.AApplication.GetImage (문자열 경로) 엉 .Media.Imaging.BitmapImage.FinalizeCreation() 일부 컴퓨터. 아이디어가 있으십니까?
웹 또는 창? –