Не полагая, что различия в производительности между этими двумя, там используемыми, некоторые вещи, которые средство моделирования не сделало правильно - т.е. оно испортит аудио в некоторых случаях (см. этот вопрос ). Однако начиная с 2,2 SDK этот вопрос был решен, и звук, кажется, прекрасен в средстве моделирования. Но это вовсе не значит то, что существуют некоторые другие несовместимости, скрывающиеся там! (Просто ни один я столкнулся)
Есть несколько способов решения этой проблемы. Вот вам два лучших варианта:
Вы можете создать собственный ServiceHost и переопределить InitializeRuntime
Вы можете создать класс под названием ApplicationStart в вашем каталоге App_Code с помощью общедоступного статического метода AppInitialize (это немного запах, хотя):
public static class ApplicationStart
{
public static void AppInitialize()
{
// Initialise IoC container
}
}
Вэньлун Дун опубликовал другие методы в своем блоге .
Вы можете использовать IInstanceProvider для создания объектов службы с помощью Unity или другого контейнера IOC. Подробнее о том, как это сделать, читайте в этом блоге.
Затем вы можете использовать IContractBehavior, реализованный как атрибут, чтобы добавить IInstanceProvider в DispatchRuntime, установив InstanceProvider в методе ApplyDispatchBehavior.