c#-无法隐式转换类型';oAuthCredentials';至';字符串';

c#-无法隐式转换类型';oAuthCredentials';至';字符串';,c#,.net,C#,.net,我正在尝试使用API从linkedin获取评论 但我在一些地方犯了个错误 有人能帮我解决一个错误吗 我已经写了这个代码 protected void Page_Load(object sender, EventArgs e) { var request = new RestRequest { Path = "posts?order=recency&category=discussion" }; var credentials = new OAu

我正在尝试使用API从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()方法?
有什么想法吗?提前感谢。

您的
RestClient
有一个
Credentials
属性,它是一个字符串;您的代码试图将非字符串的内容(在您的示例中是
OAuthCredentials
)放入其中。这是不允许的,因为这两种类型之间没有隐式转换。

RestClient
中,
Credentials
是字符串,但您正在影响它的
OAuthCredentials
Credentials=Credentials


尝试将属性的类型(和支持字段)
Credentials
更改为
OAuthCredentials
Credentials
不是类型
OAuthCredentials
,而是类型
string
,因此无法使用
Credentials
变量分配它,类型为
OAuthCredentials
。由于
RestClient
类引用了一个名为
\u consumerSecret
的变量,诸如此类,让我们假设您确实想要这样做:

Authority = credentials.ConsumerKey;
Credentials = credentials.ConsumerSecret;

如错误所示,您正试图将
OAuthCredentials
对象(凭证)分配到
RestClient
对象的字符串类型属性中:
credentials


您必须执行
Credentials=Credentials.toString()
或更改
RestClient
类。

主题中的异常是由无效的隐式强制转换引起的。检查编译器指向您的行并解决问题。您提供的代码太常见。双击错误,您将进入导致错误的行。将鼠标悬停在作业的左侧和右侧,可以看到您使用的是不兼容的数据类型。它正在工作,谢谢,还有一件事是如何创建Request()方法我不知道,因为我不知道它应该做什么:)请检查一下