2012-04-05 4 views
1

XML 파일을로드하고 더 파싱하기 위해 다음 작업을 수행하는 Silverlight 응용 프로그램이 있습니다.Silverlight에서 GetManifestStream을 사용하여 XML 파일로드

빌드 작업을 포함 리소스, 출력 디렉토리로 복사로 설정했습니다. 내가 사용하고
코드는 다음과 같습니다 내가 예외로받을

try 
      { 
       Xmlfile = XDocument.Load(Assembly.GetExecutingAssembly().GetManifestResourceStream("file.xml")); 
      } 
      catch(Exception ex) 
      { 
       MessageBox.Show(ex.Message); 
      } 

메시지 :
값은 null 일 수 없습니다.
매개 변수 이름 : 입력

편집

나는 (WPF에서) 작동 다음을 시도하지만, 실버 라이트에 문제를 제공합니다

Assembly.GetExecutingAssembly().GetManifestResourceStream(Assembly.GetExecutingAssembly().GetName().Name + ".file.xml") 

오류 :

'System.Reflection.Assembly.GetName()' is inaccessible due to its protection level 
+0

질문 제목과 태그에 Silverlight가 언급되어 있지만 질문 본문에서 WPF 앱에 대해 이야기합니다. 무엇 이니? –

답변

1

당신은 그렇지 않습니다. D는 다음과 같이, 어셈블리 및 하위 폴더의 이름을 앞에 추가합니다 :

string assemblyName = System.Reflection.Assembly.GetExecutingAssembly().GetName().Name; 
XDocument.Load(assemblyName + ".subfolder.file.xml"); 

을 때로는 하위 폴더 (들)이해야 정확히 분명하지 않다.

string[] names = System.Reflection.Assembly.GetExecutingAssembly().GetManifestResourceNames(); 
+0

'string [] names = System.Reflection.Assembly.GetExecutingAssembly(). GetManifestResourceNames();'파일'Wpfapplication12.file.xml'을 보여줍니다. 하지만 귀하의 대답에 위의 코드를 사용하여 파일을 얻으려고, 나는 여전히 '파일을 찾을 수 없습니다 오류 : ..//bin/Debug/WpfApplication12.file.xml 찾을 수 없습니다' – user1240679

1

내가 아직 답이없는,하지만 앞에 추가 "솔루션"실버 라이트 5 응용 프로그램이 작동하지 않습니다 : 그런 경우, 그냥 직접를 사용하여 이름을 검사합니다.

Silverlight 5.0 프로젝트에서 제공된 코드를 컴파일하면 이 발생합니다. 컴파일시 보호 수준으로 인해 'System.Reflection.Assembly.GetName()'에 액세스 할 수 없습니다. 같은 보호 오류가 다른 GetName() 과부하를 들어

System.Reflection.Assembly.GetName(); 
System.Reflection.Assembly.GetEntryAssembly() 
<someAssembly>.GetReferencedAssemblies() 

: 공식적으로

나는 비슷한 오류를 얻을.

<someAssembly>.GetType(fullyQualifiedTypeName, false, true); 

'System.Reflection.Assembly.GetType (문자열, 부울, 부울는)'

내가 보호 수준 오류가 실버 라이트 애플리케이션은 부분적으로 만 사실에서 유래 의심 인해 보호 수준에 액세스 할 수 없습니다 신뢰할 수있는 코드 및 반사 특성은 높은 신뢰를 요구합니다. 그러나 결국 나는 Microsoft 코드 벽 뒤에 무엇이 있는지에 대해서만 추측합니다.

MSDN의 기사 또는 Silverlight 5 웹 응용 프로그램에 통합되었을 때 비활성화되거나 보호되는 어셈블리에 대한 C# reflection의 부분을 설명하는 문서가 있습니까?