У меня есть другая перспектива ответить на это.
При работе на разных уровнях, например, в приложении MVC, контроллеру нужны службы для вызова бизнес-операций. В таких сценариях контейнер инжекции зависимостей может использоваться для инициализации служб, чтобы исключить исключение NullReferenceException. Это означает, что вам не нужно беспокоиться о проверке нулевого значения и просто вызвать службы с контроллера, как будто они всегда будут доступны (и инициализированы) как одиночный или прототип.
public class MyController
{
private ServiceA serviceA;
private ServiceB serviceB;
public MyController(ServiceA serviceA, ServiceB serviceB)
{
this.serviceA = serviceA;
this.serviceB = serviceB;
}
public void MyMethod()
{
// We don't need to check null because the dependency injection container
// injects it, provided you took care of bootstrapping it.
var someObject = serviceA.DoThis();
}
}
Эта функциональность не встроена в .NET Framework
Возможно, посмотрите на API Google Translate
В принципе работает следующий код:
private static ResourceManager resourceManager = new ResourceManager("mscorlib", typeof(int).Assembly);
public static string CultureName(CultureInfo culture, CultureInfo displayCulture)
{
return resourceManager.GetString("Globalization.ci_" + culture.Name, displayCulture);
}
Однако существуют важные ограничения:
Пример для CultureInfo.EnglishName:
public CultureInfo GetCultureInfo(string EnglishName)
{
foreach (CultureInfo info in CultureInfo.GetCultures(CultureTypes.AllCultures))
{
if (info.EnglishName == EnglishName)
return new CultureInfo(info.Name);
}
return null;
}