UnityContainer a HttpContext rubrika: Programování: PHP

12 xxar3s
položil/-a 9.8.2012
 
upravil/-a 9.8.2012

pomocou metódy Resolve vyberám objekty z UnityContainer-u potreboval by som to skombinovať s HttpContextom (ktorý implementuje IServiceProvider)

Aby ak mi metóda Resolve nenájde objekt v UnityContainer-y aby zavolala metódu GetService na HttpContexte a skúsila ho dostať odtiaľ.

príklad:

unityContainer.Resolve<HttpResponse>()

nenájde HttpResponse v unity kontainery tak zavolá

(httpContext as IServiceProvider).GetService(typeof(HttpResponse))

a vráti objekt typu HttpResponse z HttpKontextu

Ale potrebujem aby to fungovalo aj pri hľadaní závislostí to znamená, že keď do UnityContainer-u vložím takúto triedu:

class Ukazka
{
  public Ukazka(HttpResponse response)
  {
     ...
  }
}

aby sa automaticky našla závislosť buď v UnityContainer-y, alebo v HttpContexte

Komentáře

  • Augi : Tenhle tvůj scénář vypadá dost divoce, např. u metody GetService na třídě HttpContext je v MSDN tato poznámka: "This API supports the .NET Framework infrastructure and is not intended to be used directly from your code." Zkus prosím raději popsat, co konkrétně řešíš a proč to chceš dělat zrovna takto. S UnityContainerem v ASP.NET mám dost zkušeností, tak bych snad mohl pomoci. 28.9.2012
0
odkaz
12 Augi
odpověděl/-a 28.9.2012

Toto by mělo jít zařídit přes vlastní extension a build-strategy, více info např. v tomto článku: http://mark-dot-net.blogspot.com/2009/09/custom-object-factory-unity-ext...
Jak jsem psal ale v komentáři výše, nepřijde mi OK používat metodu, kterou v dokumentaci nedoporučují používat, takže bych zkusil přehodnotit navržené řešení...

Pro plný přístup na Devel.cz se prosím přihlaste:

Rychlé přihlášení přes sociální sítě:

Nebo se přihlaste jménem a heslem:

Zadejte prosím svou e-mailovou adresu.
Zadejte své heslo.