2011-08-22 52 views
2

我在使用已过期文档的第三方API时遇到问题,所以我试图弄清楚为什么这一片@#$!不工作。并通过@#$!我的意思是“代码”,当然:)C#错误(使用接口方法):非静态字段,方法或属性需要对象引用

所以据我所知WAPISoap是一个公共接口,我已经通过在visual studio中添加一个web引用获得。

我也知道Describe()方法接受两个参数,一个字符串和一个凭证类型的对象,它返回一个字符串。任何帮助将不胜感激:)

这里就是我有这么远:

using WAPIClient; 
using System; 
using Project1.WsWWDAPI; 
namespace WAPIClient 
{ 
    class ResellerAPI 
    { 
     public void CallDescribe() 
     { 
      String sReturnXml; 
      Credential m_Crededential = new Project1.WsWWDAPI.Credential(); 
      m_Crededential.Account = "account"; 
      m_Crededential.Password = "password"; 
      String sCLTRID = System.Guid.NewGuid().ToString(); 
      sReturnXml = WAPISoap.Describe(sCLTRID, m_Crededential); 
      Console.WriteLine(sReturnXml); 
     } 
     static void Main(string[] args) 
     { 
      ResellerAPI reseller = new ResellerAPI(); 
      reseller.CallDescribe(); 
     } 
    } 
} 
+0

什么线是错误的?带有Describe()的行? –

+0

是的,错误是当我尝试调用方法WAPISoap.Describe(sCLTRID,m_Crededential); – ezra

回答

0

的错误是因为你用在静态情况下的非静态方法 - 你应该有WAPISoap的情况下,以调用非静态的成员函数

+1

请勿重新发布确切答案。只需编辑它。 –

+0

你是对的 - 我想这是一些浏览器的行为,我浏览了我的编辑:-( –

0

听起来你需要创建一个WAPISoap的实例,然后在该实例上调用Describe。

+0

我不能实例化一个接口,据我所知 – ezra

+0

不,你不能实例化一个接口,但然后必须有一个实现可以实例化的接口的类,或者是某个可以返回实现该接口的类的实例的静态方法。 – Pete

+0

感谢帮助,我会尝试寻找类 – ezra

1

Describe方法不是静态的,这意味着你需要调用它的WAPI类的一个实例:

​​

参见:http://products.secureserver.net/guides/wsapiquickstart.pdf

+0

那是什么文档说,但是WAPI类不存在 – ezra

+0

@ezra:你使用的是旧引用吗? –

+0

我使用那个文档中的那个,特别是https://api.ote.wildwestdomains.com/wswwdapi/wapi.asmx? wsdl – ezra

相关问题