2010-06-13 14 views
9

Chcę dodać jakiś plik xml jako zasób do mojego projektu biblioteki klas. Każdy pomysł, jak to zrobić, i zadzwonić później? W aplikacji Windows zrobiłbym to tak, jak ClassLibrary1.Properties.Resources.file.xmlzasoby w projekcie biblioteki klas

Ale tutaj nie zadziałał żaden pomysł, jak to zrobić tutaj?

+0

Co zrobiłeś, że nie zadziałało? Co próbujesz? – dtb

+6

Gdzie na Ziemi jest "tutaj"? –

Odpowiedz

9

This article wyjaśnić, jak korzystać z zasobów osadzonych w języku C#.

Sprowadza się ona do

  1. W „czasie projektowania”: Dodaj plik do projektu i oznaczyć ją jako osadzonego zasobu (Właściwości)
  2. W „czasie wykonywania”: Get wystąpienie Zgromadzenia, przechowująca żądany zasób, a następnie odbieraj go jako strumień.

var assembly = Assembly.GetExecutingAssembly();

var strumień = assembly.GetManifestResourceStream ("fully.qualified.name.of.the.resource");

Jeśli stara się wypracować FQ nazwę zasobu, leniwa sposobem jest użycie reflector aby otworzyć zespół, który przechowuje ją. Przejdź do folderu Zasoby, kliknij prawym przyciskiem myszy dany zasób i wybierz "Kopiuj".

+0

Dzięki. To mi pomogło. Innym sposobem uzyskania nazw bez pobierania narzędzia jest dostęp do _assembly.GetMainfestResourceNames() i wstawienie tam punktu przerwania. Otrzymasz wszystkie nazwiska, możesz je skopiować/wkleić i pozbyć się wezwania do uzyskania imion. :) – bgs264

8

W aplikacji Windows I zrobi to jak ClassLibrary1.Properties.Resources.file.xml

Domyślnie klasa generowane dostęp do zasobów jest wewnętrzny, więc nie można uzyskać do niego dostęp kolejny montaż. Jeśli chcesz, aby było to publiczne, wybierz plik .resx, przejdź do jego właściwości i zmień właściwość narzędzia Własne z "ResXFileCodeGenerator" na "PublicResXFileCodeGenerator". To niestandardowe narzędzie generuje klasy publiczne, które powinny rozwiązać Twój problem.

2

Kliknij prawym przyciskiem na projekt biblioteki klas, wybierz właściwości, na zakładkach po lewej wybierz sekcję Zasoby.

Ponieważ twoje pliki .resx nie są rozpoznawalne przez Visual Studio, dodaj nowe. Spowoduje to utworzenie nowego pliku .resx.

Skopiuj całą oryginalną zawartość i wklej do nowej. Następnie możesz usunąć stary. To wszystko!

Powtórz ten sam proces dla wszystkich obsługiwanych języków.

Powiązane problemy