Ich habe den folgenden Code in meinem ASP.NET-ProjektC# ASP.NET Thread-sicher statische Nur-Lese-Feld
public sealed class IoC
{
private static readonly IDependencyResolver resolver =
Service.Get("IDependencyResolver") as IDependencyResolver;
static IoC()
{
}
private IoC()
{
}
public static IDependencyResolver Container
{
get
{
return resolver;
}
}
}
public static class Service
{
public static object Get(string serviceName)
{
// Code to create and return instance...
}
}
Ist IoC.Container Thread-sicher sein?
Von meinem Verständnis Service.get einmal jeder Thread die gleiche Resolver Instanz dies richtig ist erhalten so pro Anwendungsdomäne aufgerufen wird benutzen? – Emilian
Ihr 'private static readonly IDependencyResolver-Resolver'-Feld wird nur einmal pro App-Domäne korrekt initialisiert. Es ist immer noch möglich, etwas unsicheres in 'Get' zu tun, aber das ist nicht das, was du fragst. –
In Service.Get Ich lese nur Resolver-Typ von web.config und verwenden Sie Activator, um eine Resolver-Instanz dieses Typs zu erhalten. Aber meine Sorge war, dass jeder Thread, der meine Anfragen bearbeitet, dieselbe Resolver-Instanz verwendet. – Emilian