我有一个项目A,它有一个对WCF服务的服务引用。我想在没有服务引用的情况下调用项目B中的服务。 据我所知,Service引用只是一种生成代理和配置的方法,在运行时不使用。 我将代理类和节点从项目A复制到项目B。
我可以在项目B中创建代理类的实例,并期望它直接使用配置。项目并没有其他任何东西连接到服务? (我现在不能尝试这个)
答案 0 :(得分:5)
简短回答是的。
只要您拥有接口,即连接服务的方式,您就可以创建频道并与服务人员交谈而无需参考。
参考只是让您更容易进行开发。
答案 1 :(得分:0)
考虑使用ChannelFactory从服务合同创建频道。
答案 2 :(得分:0)
这是一份工作副本。对我来说它工作正常并返回List
private List<MyClass> GetAllSiteDetailsJSON(string language)
{
Uri address =
new Uri(@"http://weburlpath/MyService/MyService.svc/GetAllList/"
+ language);
HttpWebRequest request = WebRequest.Create(address) as HttpWebRequest;
request.Method = "GET";
request.ContentType = "application/x-www-form-urlencoded";
using (HttpWebResponse response = request.GetResponse() as HttpWebResponse)
{
StreamReader reader = new StreamReader(response.GetResponseStream());
string jSon = reader.ReadToEnd();
reader.Close();
JavaScriptSerializer jsSerializer = new JavaScriptSerializer();
List<MyClass> result = jsSerializer.Deserialize<List<MyClass>>(jSon);
return result;
}
}
这是班级
public class MyClass
{
public string ID { get; set; }
public string Name { get; set; }
public List<Location> Locations { get; set; }
}
public class Location
{
public string Region { get; set; }
public string Country { get; set; }
}