错误:未实现接口成员

时间:2013-12-10 11:25:01

标签: c# wcf sharepoint-2010 wcf-rest

我正在尝试构建Restful WCF服务,我遇到了以下错误

  

错误CS0535:'WcfPOC.RestServiceImpl'未实现接口成员'WcfPOC.IRestServiceImpl.SaveEmployee(WcfPOC.RequestData)'

下面是我的代码。

RestServiceImpl .svc.cs

namespace WcfPOC
{
    public class RestServiceImpl : WcfPOC.IRestServiceImpl
    {

        public string SaveEmployee(ResponseData rData) {
            try
            {
                using (SPSite site = new SPSite(SPContext.Current.Web.Url))
                {
                    SPWeb web = site.OpenWeb();
                    SPListItemCollection listItems = web.Lists["Emply"].Items;
                    SPListItem item = listItems.Add();
                    item["Name"] = rData.Name;
                    item["Email"] = rData.Email;
                    item["EmployeeID"] = rData.EmployeeID;
                    item["Role"] = rData.Role;
                    item.Update();
                }
                return "Success";
            }catch(Exception e){
                return "Error"+e;
            }
        }
    }

    [DataContract]
    public class RequestData
    {
        [DataMember]
        public string Name { get; set; }
        public string Email { get; set; }
        public string EmployeeID { get; set; }
        public string Role { get; set; }
    }

    [DataContract]
    public class ResponseData
    {
        public string Name { get; set; }
        public string Email { get; set; }
        public string EmployeeID { get; set; }
        public string Role { get; set; }
    }
}

IRestServiceImpl.cs

namespace WcfPOC
{
    public class IRestServiceImpl
    {
        // NOTE: You can use the "Rename" command on the "Refactor" menu to change the interface name "IRestServiceImpl" in both code and config file together.
        [ServiceContract]
        public interface IRestServiceImpl
        {            
            [OperationContract]
            [WebInvoke(Method = "POST", RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json, UriTemplate = "SaveEmployee")]
            string SaveEmployee(RequestData rdata);

        }
    }

}

任何帮助都是合理的。

1 个答案:

答案 0 :(得分:2)

界面:

string SaveEmployee(RequestData rdata);

public string SaveEmployee(ResponseData rData)

您的编译错误来自您在接口和类之间的方法签名中使用两个不同的类:RequestData与ResponseData。 您可能不需要使用具有相同设计的两个类。只有一个应该够了吗?