我正在尝试将项目从VS2010迁移到VS2012,除了一些小障碍外,我遇到的最大问题是有一个public class
不会继承接口。
接口:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.ServiceModel.Web;
using System.Text;
using COMPANY.PROJECT.HL7.ExceptionManagement;
using COMPANY.PROJECT.HL7.Common;
namespace COMPANY.PROJECT.HL7.WebService
{
[ServiceContract(Namespace = "http://class.ified/Services")]
[XmlSerializerFormat]
public interface IAssessmentService
{
这是尝试继承接口的类:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Services;
using System.Xml.Serialization;
using COMPANY.PROJECT.HL7.ExceptionManagement;
using COMPANY.PROJECT.HL7.Common;
using COMPANY.Common.Logging;
using System.Web.Services.Protocols;
using System.Text;
using System.Xml;
using System.ServiceModel;
using System.ServiceModel.Web;
using COMPANY.PROJECT.BDO;
using COMPANY.PROJECT.Common;
using COMPANY.PROJECT.BDO.Security;
using COMPANY.PROJECT.HL7.SurveyAdminServiceReference;
using COMPANY.PROJECT.HL7.PatientServiceReference;
using COMPANY.PROJECT.Common.Web.Extensions;
using COMPANY.PROJECT.BDO.ServiceResponse;
using COMPANY.PROJECT.BDO.Enrollment;
using System.Configuration;
using System.ServiceModel.Channels;
namespace COMPANY.PROJECT.HL7.WebService
{
public class AssessmentService : IAssessmentService
{
在VS2010中,项目编译没有错误,AssessmentService
和IAssessmentService
都以浅蓝色文本显示,但在VS2012中AssessmentService
为浅蓝色,IAssessmentService
为简单的黑色文本,对我说它找不到界面,即使它在同一名称空间中。虽然这不会导致这两个特定文件出现任何构建错误,但它会导致代码模块出现单元测试错误:
Error 9 The type or namespace name 'AssessmentService' does not exist in the namespace 'COMPANY.PROJECT.HL7.WebService' (are you missing an assembly reference?)'
当我查看发生构建错误的代码模块时,它是using COMPANY.PROJECT.HL7.WebService;
以防万一有人要问这个问题。
如果有人能够告诉我为什么界面可以在VS2010中继承而不是在2012年继承,那将是最优秀的。同样,我已经检查了2010年和2012年之间任何差异的属性,并确保它们完全相同。
谢谢,
尼克
答案 0 :(得分:1)
首先构建包含接口的程序集。假设它构建正常,请确保在您正在使用它的项目中有对该程序集的引用。
您还可以从解决方案属性对话框的项目依赖项选项卡中检查项目的构建顺序。