我们有以下共享组件:
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:34PM EDT 新发现。
“OurServiceBase”类存在于单独的项目中(通常仅作为 DLL 引用)。一时兴起,我将基类文件复制到我的项目中,构建并打开设计器。有效!当我再次移除基类文件并返回到外部 DLL 引用时,设计器再次崩溃。
最佳答案
你也可以尝试这样做:
- 关闭所有UI设计页面
- 清洁解决方案
- 构建解决方案
- 打开所需的 UI 设计页面
这可能有帮助也可能没有帮助,但它确实解决了我项目中的相同问题。
关于c# - 无法为此文件显示设计器,因为无法设计其中的任何类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6683255/