У нас есть следующий общий компонент:
public class OurServiceBase : System.ServiceProcess.ServiceBase
Этот класс имеет функциональность, которую мы хотим использовать во всех наших нисходящих сервисах, таких как стандартизованное планирование выполнения и возможности ведения журнала.
В новом проекте я добавляю следующее:
public class MyService : System.ServiceProcess.ServiceBase
В конструкторе Windows класс отображается правильно.
Когда я меняю службу на вывод из OurServiceBase
public class MyService : OurSharedLibrary.OurServiceBase
Дизайнер перестает работать:
Полная ошибка: Дизайнер не может быть показан для этого файла, потому что ни один из классов внутри него не может быть спроектирован. Дизайнер проверил следующие классы в файле: EmailProcessor --- Не удалось загрузить базовый класс "OurSharedLibrary.CienaServiceBase". Убедитесь, что на сборке указаны ссылки и что все проекты построены.
Собственные сборки ссылаются, проект строится. Я не понимаю, почему дизайнер отказывается от этого, так как мое обслуживание в конечном итоге происходит от классного класса.
Любые предложения были бы наиболее желанными.
Бит больше информации - стек вызовов от конструктора, когда он делает ошибку о невозможности проектирования производной службы:
at System.ComponentModel.Design.Serialization.CodeDomDesignerLoader.EnsureDocument(IDesignerSerializationManager manager)
at System.ComponentModel.Design.Serialization.CodeDomDesignerLoader.PerformLoad(IDesignerSerializationManager manager)
at Microsoft.VisualStudio.Design.Serialization.CodeDom.VSCodeDomDesignerLoader.PerformLoad(IDesignerSerializationManager serializationManager)
at System.ComponentModel.Design.Serialization.BasicDesignerLoader.BeginLoad(IDesignerLoaderHost host)
7/19/2011 2:34 вечера EDT Новое открытие.
Класс "OurServiceBase" существует в отдельном проекте (обычно он упоминается только как DLL). По прихоти я скопировал файл базового класса в свой проект, построил и открыл конструктор. Это сработало! Когда я снова удалил файл базового класса и вернулся во внешнюю ссылку на DLL, дизайнер снова сломался.