2011-01-12 2 views
2

Betrachten Sie die folgende in .NET 3.5 (die Bin mit \ Net35 \ Facebook * .dll-Baugruppen):Zugriff auf Facebook C# SDK-Ergebnis Objekt mit .NET 3.5 API?

using Facebook; 

var app = new FacebookApp(); 
var result = app.Get("me"); 
// want to access result properties with no dynamic 

... in Abwesenheit des C# 4.0 dynamic Schlüsselwort dies nur allgemeine object Mitglieder zur Verfügung stellt.
Wie kann ich am besten auf die Facebook-Eigenschaften dieses Ergebnisobjekts zugreifen?

Gibt es Hilfs- oder Hilfsmethoden oder stärkere Typen im facebook C# SDK, oder sollte ich Standard-.NET-Reflexionstechniken verwenden?

+0

ähnliche Frage hier - http://stackoverflow.com/questions/4674669/facebook-c-sdk-net-3-5-dynamic-objects –

Antwort

5

Diese code sample zeigt 3,5-Nutzung, ohne die C# dynamic Schlüsselwort benötigen:

// Using IDictionary<string, object> (.Net 3.5) 
var client = new FacebookClient(); 
var me = (IDictionary<string,object>)client.Get("me"); 
string firstName = (string)me["first_name"]; 
string lastName = (string)me["last_name"]; 
string email = (string)me["email"]; 
+0

Für alle andere, die das einfach kopiert und gefragt, warum es doesn 't kompilieren, die korrekte Schreibweise ist' IDictionary ': o) – Marc

+0

@Marc: Der Tippfehler korrigiert, danke. –

-1

Sie auch eine Fassade Objekt um die IDictionary erstellen können, wie here erläutert.

0
var accesstoken = Session["AccessToken"].ToString(); 
var client = new FacebookClient(accesstoken); 
dynamic result = client.Get("me", new { fields = "name,id,email" }); 
Details details = new Details(); 
details.Id = result.id; 
details.Name = result.name; 
details.Email = result.email;