未实现接口成员 [英] does not implement interface member
问题描述
您好我有以下的code,但我不断收到错误:
Hi I have the following code but I keep getting the error:
JsonWcfService.GetVenues不实现接口成员'GetVenuesByLocation(字符串搜索)。
'JsonWcfService.GetVenues' does not implement interface member 'GetVenuesByLocation(string search)'.
我是相当新的C和.Net所以大部分是剪切和粘贴是诚实的。
I am fairly new to C and .Net so most of this is cut and paste to be honest.
您的帮助将是非常美联社preciated。
Your help would be much appreciated.
IGetVenues.cs
IGetVenues.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.Text;
using System.ServiceModel.Web;
namespace JsonWcfService
{
[ServiceContract]
public interface IGetVenues
{
[OperationContract]
//attribute for returning JSON format
[WebInvoke(Method = "GET",
ResponseFormat = WebMessageFormat.Json,
BodyStyle = WebMessageBodyStyle.Wrapped,
UriTemplate = "json/Venues/search={search}")]
//method
List<Venue> GetAllVenuesMethod(string search);
[OperationContract]
[WebInvoke(Method = "GET",
ResponseFormat = WebMessageFormat.Json,
RequestFormat = WebMessageFormat.Json,
BodyStyle = WebMessageBodyStyle.Wrapped,
UriTemplate = "json/Venues/location={search}")]
List<Venueloc> GetVenuesByLocation(string search);
}
}
GetVenues.svc.cs
GetVenues.svc.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.Text;
using System.Data.SqlClient;
namespace JsonWcfService
{
public class GetVenues : IGetVenues
{
public List<Venue> GetAllVenuesMethod(string search)
{
List<Venue> mylist = new List<Venue>();
using (SqlConnection conn = new SqlConnection("server=*****;database=******;Trusted_Connection=True;"))
{
conn.Open();
string cmdStr = String.Format("Select id,name,address1,town,postcode,lon,lat from venuesearch WHERE searchterm like @searchterm");
SqlCommand cmd = new SqlCommand(cmdStr, conn);
cmd.Parameters.Add(new SqlParameter("searchterm", "%" + Convert.ToString(search) + "%"));
SqlDataReader rd = cmd.ExecuteReader();
if (rd.HasRows)
{
while (rd.Read())
mylist.Add(new Venue(
rd.GetInt32(0),
//rd.GetString(1),
rd.IsDBNull(1) ? null : rd.GetString(1),
//rd.GetString(2),
rd.IsDBNull(2) ? null : rd.GetString(2),
//rd.GetString(3),
rd.IsDBNull(3) ? null : rd.GetString(3),
//rd.GetString(4)
rd.IsDBNull(4) ? null : rd.GetString(4),
//rd.GetString(4)
rd.IsDBNull(5) ? 0 : rd.GetDecimal(5),
//rd.GetString(4)
rd.IsDBNull(6) ? 0 : rd.GetDecimal(6)
));
}
conn.Close();
}
return mylist;
}
}
[DataContract]
public class Venue
{
[DataMember]
public Int32 id { get; set; }
[DataMember]
public string name { get; set; }
[DataMember]
public string address1 { get; set; }
[DataMember]
public string town { get; set; }
[DataMember]
public string postcode { get; set; }
[DataMember]
public Decimal lon { get; set; }
[DataMember]
public Decimal lat { get; set; }
public Venue(int venid, string venname, string venaddress1, string ventown, string venpostcode, decimal venlon, decimal venlat)
{
id = venid;
name = venname;
address1 = venaddress1;
town = ventown;
postcode = venpostcode;
lon = venlon;
lat = venlat;
}
public List<Venueloc> GetVenuesByLocation(string search)
{
List<Venueloc> mylist = new List<Venueloc>();
using (SqlConnection conn = new SqlConnection("server=***;database=******;Trusted_Connection=True;"))
{
conn.Open();
string cmdStr = String.Format("Select id,name,address1,town,postcode,lon,lat from venuesearch WHERE searchterm like @searchterm");
SqlCommand cmd = new SqlCommand(cmdStr, conn);
cmd.Parameters.Add(new SqlParameter("searchterm", "%" + Convert.ToString(search) + "%"));
SqlDataReader rd = cmd.ExecuteReader();
if (rd.HasRows)
{
while (rd.Read())
mylist.Add(new Venueloc(
rd.GetInt32(0),
//rd.GetString(1),
rd.IsDBNull(1) ? null : rd.GetString(1),
//rd.GetString(2),
rd.IsDBNull(2) ? null : rd.GetString(2),
//rd.GetString(3),
rd.IsDBNull(3) ? null : rd.GetString(3),
//rd.GetString(4)
rd.IsDBNull(4) ? null : rd.GetString(4),
//rd.GetString(4)
rd.IsDBNull(5) ? 0 : rd.GetDecimal(5),
//rd.GetString(4)
rd.IsDBNull(6) ? 0 : rd.GetDecimal(6)
));
}
conn.Close();
}
return mylist;
}
}
[DataContract]
public class Venueloc
{
[DataMember]
public Int32 id { get; set; }
[DataMember]
public string name { get; set; }
[DataMember]
public string address1 { get; set; }
[DataMember]
public string town { get; set; }
[DataMember]
public string postcode { get; set; }
[DataMember]
public Decimal lon { get; set; }
[DataMember]
public Decimal lat { get; set; }
public Venueloc(int venid, string venname, string venaddress1, string ventown, string venpostcode, decimal venlon, decimal venlat)
{
id = venid;
name = venname;
address1 = venaddress1;
town = ventown;
postcode = venpostcode;
lon = venlon;
lat = venlat;
}
}
}
第一个功能的作品,但第二个没有。
The first function works but the second one doesn't.
推荐答案
您的类 GetVenues
没有实现在错误消息中提到的方法。你究竟在何处停留? GetVenuesByLocation(字符串搜索)
中的类定义地点
。
Your class GetVenues
does not implement the method mentioned in your error message. Where exactly are you stuck? GetVenuesByLocation(string search)
is defined in the class Venue
.
我已经注意到这个问题,开始为争取利益。这里的问题是非常简单:你的类没有实现(即使它是摘要
,你必须定义它们)接口中定义的所有方法。您的IDE编译之前应该提醒你这一点。
I have noticed that this question is starting to garner interest. The issue here is very easy: your class does not implement (even if it's abstract
, you have to define them) all methods defined in the interface. Your IDE should warn you of this before compiling.
这篇关于未实现接口成员的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!