Ik heb een configuratie bestand met een stapel URI's naar embedded resource bestanden, dus in de vorm:
<RootNamespace>.<SubNamespace>.<SubNamespace>.<Filename>.<Extension>
Normaal gesproken zou je met Assembly.GetExecutingAssembly en vervolgens met GetManifestResourceStream de embedded resource kunnen benaderen. In deze situatie kan de embedded resource file echter ook in een andere assembly zitten.
Ik zal die dus waarsch. moeten openen met Assembly.Load("AssemblyName"), maar ik heb de assembly naam niet tot mijn beschikking.
Ik mag er vanuitgaan in deze situatie dat de root namespace hetzelfde is als de assembly naam, maar ook daarmee ben ik er nog niet. Ik weet namelijk niet welk deel van de totale URI ik kan gebruiken als naam van de assembly... Splitten op "." en dan het eerste veld pakken is niet in alle gevallen juist, aangezien sommige assembly's zelf al een punt in de naam hebben.
Een mogelijke oplossing zou zijn door de AppDomain.CurrentDomain.GetAssemblies heen te fietsen, elke afzonderlijke assembly open te trekken en op zoek te gaan naar de opgegeven resource. Dit lijkt me alleen niet de meest efficiente manier, dus ben ik op zoek naar een manier waarop dit anders kan.
Is er een functionaliteit waarbij ik de resource rechtstreeks op URI benaderen, of de assembly naam op basis van de URI kan achterhalen ?
<RootNamespace>.<SubNamespace>.<SubNamespace>.<Filename>.<Extension>
Normaal gesproken zou je met Assembly.GetExecutingAssembly en vervolgens met GetManifestResourceStream de embedded resource kunnen benaderen. In deze situatie kan de embedded resource file echter ook in een andere assembly zitten.
Ik zal die dus waarsch. moeten openen met Assembly.Load("AssemblyName"), maar ik heb de assembly naam niet tot mijn beschikking.
Ik mag er vanuitgaan in deze situatie dat de root namespace hetzelfde is als de assembly naam, maar ook daarmee ben ik er nog niet. Ik weet namelijk niet welk deel van de totale URI ik kan gebruiken als naam van de assembly... Splitten op "." en dan het eerste veld pakken is niet in alle gevallen juist, aangezien sommige assembly's zelf al een punt in de naam hebben.
Een mogelijke oplossing zou zijn door de AppDomain.CurrentDomain.GetAssemblies heen te fietsen, elke afzonderlijke assembly open te trekken en op zoek te gaan naar de opgegeven resource. Dit lijkt me alleen niet de meest efficiente manier, dus ben ik op zoek naar een manier waarop dit anders kan.
Is er een functionaliteit waarbij ik de resource rechtstreeks op URI benaderen, of de assembly naam op basis van de URI kan achterhalen ?