在没有服务引用的情况下调用WCF服务

时间:2011-02-24 07:51:20

标签: wcf

我有一个项目A,它有一个对WCF服务的服务引用。我想在没有服务引用的情况下调用项目B中的服务。 据我所知,Service引用只是一种生成代理和配置的方法,在运行时不使用。 我将代理类和节点从项目A复制到项目B。

我可以在项目B中创建代理类的实例,并期望它直接使用配置。项目并没有其他任何东西连接到服务? (我现在不能尝试这个)

3 个答案:

答案 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; }
}