2013-06-19 68 views
-3

我試圖通過使用API​​C# - 無法隱式轉換類型「oAuthCredentials」到「字符串」

獲得來自LinkedIn的評論,但我得到一個錯誤,在一些地方

誰能幫助我解決一個錯誤?

我寫這段代碼

protected void Page_Load(object sender, EventArgs e) 
    { 
     var request = new RestRequest { Path = "posts?order=recency&category=discussion" }; 

     var credentials = new OAuthCredentials 

     { 
      ConsumerKey = "kmkzt9cqml1s", 
      ConsumerSecret = "hNiwIrZWGSMykoD2", 
     }; 


     var client = new RestClient() 
     { 
      Authority = "http://api.linkedin.com/v1/groups/345455/", 
      Credentials = credentials//Here I'm getting an error 
     }; 

     //Here how to create Request method 
     var MyInfo = client.Request(request); 

     String content = MyInfo.Content; 

     string strURL = "http://api.linkedin.com/"; 
     System.Net.HttpWebRequest objWebRequest = null; 
     System.Net.HttpWebResponse objWebResponse = null; 
     System.IO.StreamReader streamReader = null; 
     string strHTML = null; 

     System.Net.ServicePointManager.ServerCertificateValidationCallback = delegate(object s, System.Security.Cryptography.X509Certificates.X509Certificate certificate, System.Security.Cryptography.X509Certificates.X509Chain chain, System.Net.Security.SslPolicyErrors sslPolicyErrors) { return true; }; 

     objWebRequest = (System.Net.HttpWebRequest)System.Net.WebRequest.Create(strURL); 
     objWebRequest.PreAuthenticate = true; 
     objWebRequest.Method = "GET"; 

     objWebRequest.Credentials = System.Net.CredentialCache.DefaultCredentials; 

     objWebResponse = (System.Net.HttpWebResponse)objWebRequest.GetResponse(); 

     streamReader = new System.IO.StreamReader(objWebResponse.GetResponseStream()); 

     strHTML = streamReader.ReadToEnd(); 


     streamReader.Close(); 
     objWebResponse.Close(); 
     objWebRequest.Abort(); 

     Response.ContentType = "text/xml"; 
     Response.Write(strHTML); 
     Response.End(); 

    } 

RestClient.cs

public class RestClient 
    { 
    private string _consumerKey = ""; 
    private string _consumerSecret = ""; 

    #region Properties 
    public string Authority 
    { 
     get 
     { 
      return _consumerKey; 
     } 
     set { _consumerKey = value; } 
    } 

    //Here giving string 
    public string Credentials 
    { 
     get 
     { 
      return _consumerSecret; 
     } 
     set { _consumerSecret = value; } 
    } 
    #endregion 
} 

如何創建request()方法? 有什麼建議嗎?提前致謝。

+0

無效隱式轉換導致主題異常。檢查哪一個編譯器指向你並解決問題。你提供的代碼太常見了。 – Tommi

+0

雙擊該錯誤,您將在導致錯誤的行中着陸。將鼠標懸停在作業的左側和右側,查看您使用的是不兼容的數據類型。 – wonko79

回答

0

由於錯誤說,你想一個OAuthCredentials對象(憑證)分配到字符串鍵入的屬性RestClient對象:Credentials

您必須做Credentials = credentials.toString()或更改RestClient類。

+0

它的工作謝謝,還有一件事如何創建請求()方法 – user2500094

+0

我不知道,因爲我不知道它應該做什麼:) – C4stor

+0

通過這個http://stackoverflow.com /問題/ 12860359 /檢索,LinkedIn的電子郵件地址 – user2500094

0

你的RestClient有一個Credentials屬性是一個字符串;你的代碼試圖把一些不是字符串的東西(在你的情況下,一個OAuthCredentials)放入它。這不是允許的,因爲兩種類型之間沒有隱式轉換。

0

RestClientCredentials是字符串,但是您正在影響OAuthCredentialsCredentials = credentials)。

嘗試將屬性的類型(和後臺字段)Credentials更改爲OAuthCredentials

0

Credentials不是OAuthCredentials類型,它的string型的,所以你不能用你的credentials變量,它是OAuthCredentials類型進行分配。由於RestClient類引用變量命名爲_consumerSecret,而這樣等,讓我們假設你真的想這樣做:

Authority = credentials.ConsumerKey; 
Credentials = credentials.ConsumerSecret; 
相關問題