2016-05-11 2 views
4

Этот класс был сгенерирован NuGet после установки Unity.WcfUnity.Wcf/не реализует унаследованный абстрактный элемент и пригодный способ нашел переопределить

public class WcfServiceFactory : UnityServiceHostFactory 
    { 
     protected override void ConfigureContainer(IUnityContainer container) 
     { 
      // register all your components with the container here 
      // container 
      // .RegisterType<IService1, Service1>() 
      // .RegisterType<DataContext>(new HierarchicalLifetimeManager()); 
     } 
    } 

Это класс, который наследуется:

public abstract class UnityServiceHostFactory : ServiceHostFactory 
    { 
     protected UnityServiceHostFactory(); 

     protected abstract void ConfigureContainer(IUnityContainer container); 
     protected override ServiceHost CreateServiceHost(Type serviceType, Uri[] baseAddresses); 
    } 

Каким-то образом я получаю эти ошибки 2:

'ServiceImplementation2.WcfServiceFactory' does not implement inherited abstract member 'Unity.Wcf.UnityServiceHostFactory.ConfigureContainer(Microsoft.Practices.Unity.IUnityContainer)'

и

'ServiceImplementation2.WcfServiceFactory.ConfigureContainer(Microsoft.Practices.Unity.IUnityContainer)': no suitable method found to override

В параметрах нет отличий.

Даже автогенерация метода вызывает у меня ошибки.

Я использую VisualStudio2013.

ответ

4

У меня была такая же проблема при работе с Unity 4.0.1, но затем проблема исчезла после перехода на Unity 3.5.1404. Мне кажется, что Unity.Wcf не работает с 4.0.1.

Чтобы установить единство версии 3.5

Install-Package Unity -Version 3.5.1404

Надежда это поможет.

+0

Привет это сделал трюк! Я unistalled Unity.Wcf, затем Unity, а затем я переустановил их. Большое спасибо! –

4

Вместо понижения Microsoft.Practices.Unity вы можете вместо этого обновить Unity.Wcf. Я думаю, вы используете Unity.Wcf 1.0.0. Используя эту версию Unity.Wcf вы не получите ошибку компиляции:

UnityWCF page at nuget

+0

_Согласаются ссылки на внешние ресурсы, но, пожалуйста, добавьте контекст вокруг ссылки, чтобы у ваших коллег было некоторое представление о том, что это такое и почему оно есть. Всегда указывайте наиболее релевантную часть важной ссылки, если целевой сайт недоступен или постоянно отключен. – Bugs

+0

К сожалению, ссылка задокументирована. –

+1

Существует две версии пакетов, которые помогают интегрировать Unity с WCF.One называется [Unity.WCF] (https://www.nuget.org/packages/Unity.Wcf/), который не обновлялся с 2012 года, и другой - [UnityWCF] (https://www.nuget.org/packages/UnityWCF/), который был обновлен в последний раз в 2016 году. Я подтвердил, что подход Roath So работает. Однако зачем переходить к предыдущей версии Unity! Я также подтвердил, что UnityWCF хорошо работает с последней версией [Unity] (https://www.nuget.org/packages/Unity/) 4.0.1 (обновлено в апреле 2014 года). Я рекомендую использовать подход, предложенный @Ole. – user3613932

Смежные вопросы