Wyobraź sobie, że pracujesz nad projektem .Net 4.0, który składa się z setek zestawów, z których każdy ma własny plik zasobów (.resx) do lokalizacji. Zlokalizowane ciągi są dostępne z C# przez klas generowane automatycznie z ResXFileCodeGenerator (który tworzy „ResourceFile.Designer.cs” pliku): string test = ResourceFile.TestString;
Jak dokonać dziedziczenia plików zasobów (Resx)
Każdy zespół ma zlokalizowane ciągi, które są przede wszystkim do niego, ale nie są ciągi, które są wspólne dla wszystkich zgromadzeń. Mówisz sobie, że byłoby miło mieć te "wspólne ciągi" w "macierzystym" pliku zasobów, na którym kod zostałby przywrócony, jeśli klucz zasobów nie jest dostępny w "lokalnym" pliku zasobów. Potem mówisz: "Hej, dziedziczenie może tu działać". I rzeczywiście, robi się coś takiego w automatycznie generowanym pliku projektanta, działa: internal class ResourceFile : ParentResourceFile
Oznacza to, że ciągi nie zdefiniowane w ResourceFile
, ale zdefiniowane w ParentResourceFile
, nadal można uzyskać dostęp z ResourceFile.StringInParentFile
.
Ale coś w kłopotach nagłówka pliku projektanta ty: „zmian do tego pliku może spowodować nieprawidłowe zachowanie i zostaną utracone, jeśli kod jest regenerowany.” Plus wiesz grając w automatycznie generowanych plików projektantów jest źle widziane. Więc chodź tu i pytasz:
- Kiedy ResXFileCodeGenerator wygenerować/zregenerować projektant klasę?
- Czy istnieje sposób wyłączenia automatycznego generowania?
- Czy będziemy mieć , aby zrezygnować z zalet narzędzia ResXFileCodeGenerator i wdrożyć naszą własną obsługę ResourceManager ?
I mówisz "dziękuję".
to nie działa dla mnie ... Jak to się stało, że można było wywołać "BaseClass.BaseResourceFile.TestString"? – Denis