2011-03-04 16 views
10

私はAsp.Net 3.5アプリケーションでFacebook SDK C#ライブラリを使用しています。下のコードをコンパイルしようとすると、エラーが出る。 4.0フレームワークで使用している動的なタイプを知っています。 それを動作させるには、それを書き直すのはどうですか? 私はSystem.Core 3.5への参照を持っているが、それはまだ、動的にC#4.0で利用可能ですコンパイラが必要なタイプのため、ダイナミックを利用するクラスまたはメンバを定義できません

protected void Page_Load(object sender, EventArgs e) 
     { 
      if (Request.Params.AllKeys.Contains("signed_request")) 
      { 
       var result = FacebookSignedRequest.Parse(FacebookContext.Current.AppSecret, Request.Params["signed_request"]); 
       dynamic signedRequestValue = result.Data; 
       this.RegistrationData = signedRequestValue.registration; 
      } 
      else 
      { 
       Response.Redirect("~/"); 
      } 
     } 

protected dynamic RegistrationData { get; set; } 


Error 1 Cannot define a class or member that utilizes 'dynamic' because the compiler required type 'System.Runtime.CompilerServices.DynamicAttribute' cannot be found. Are you missing a reference to System.Core.dll? 

Error 2 Cannot define a class or member that utilizes 'dynamic' because the compiler required type 'System.Runtime.CompilerServices.DynamicAttribute' cannot be found. Are you missing a reference to System.Core.dll? 

答えて

7

をコンパイルしていません。

アプリケーションを4.0バージョンに変換する必要があります 参照されているアセンブリ(System.Core)を4.0に変更してください。

+0

この時点で私のアプリケーションを4.0に変換することはできません。コードを調整する方法はありますか? – Anton

+0

result.Dataから返される値のデータ型を知っていますか? – Chandu

+0

キーと値を含む戻り値のFacebook.Json.Object。値は文字列です – Anton

0

ダイナミックを使用したくない場合は、そうする必要はありません。

var client = new FacebookClient(); 
var me = client.Get("totten") as IDictionary<string, object>; 
string firstName = (string)me["first_name"]; 
string lastName = me["last_name"].ToString(); 

This tutorial私のプロジェクトはすでに> 4.0であった多くの深さで

4

それを説明しています。実際、4.5.2だった。私はこのエラーを経験していました。私が修正したもの:

  1. プロジェクトを4.5.1に変更しました。

  2. 私は4.5.2に戻しました。

  3. 問題が解決しました!

ありがとうございます。

PS - facebook SDKを使用していませんが、これが役立ちます。

関連する問題