嗨,我有以下的代码,但我不断收到错误:不实现接口成员
“JsonWcfService.GetVenues”不实现接口成员“GetVenuesByLocation(字符串搜索)”。
我对C和.Net相当陌生,因此大多数情况下都是通过剪切和粘贴来实现的。
您的帮助将不胜感激。
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
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;
}
}
}
第一个功能的作品,但第二个没有。
我在哪里需要把它,如果我移动它下来,我得到更多的错误,没有得到错误。 –
您必须将该方法移至“GetVenues”类。可怕的班级名称的方式。 –
谢谢!在你的帮助下,我设法让我的头转过来! –