2010-12-17 12 views
1

Ich bastle mit RIA Services und ich habe einen DomainService erstellt, und ich bin in der Lage, das an Raster/Datenformen und dergleichen zu binden ... aber für das Leben von mir kann ich nicht sehen, wie ich benutzerdefinierte nennen kann Methoden für diesen DomainService. Ich habe eine Methode wie folgt erstellt:Wie kann ich eine Invoke-Operation auf einem DomainService binden?

[Invoke] 
public IEnumerable<string> GetCities() 
{ 
    return new List<string>() { "some city" }; 
} 

Ich möchte diese Methode die Elemente Sammlung eines Combobox binden können (one-way).

In der Silverlight-Seite gibt es ein peopleDomainService-Objekt, das als Ressource erstellt wird, wenn Steuerelemente zu der Seite hinzugefügt werden, die zum Binden verwendet wird. Aber nirgendwo kann ich irgendeine meiner Methoden finden.

Antwort

1

Die Art und Weise Sie beschreiben die Methode nicht zu sehen, macht mich fragen, ob Sie eine Instanz von peopleDomainService erstellt haben oder wenn Sie bezieht sich nur auf die Klassendefinition, die automatisch in XAML eingefügt wurde.

So etwas sollte gut funktionieren, solange Sie das .Web-Projekt neu erstellt haben.

peopleDomainService ldCTX = new peopleDomainService(); 
var query = ctx.GetCities(); 
ldCTX.Load(query, GetCities_Loaded, null); 

Und fügen Sie Ihr GetCities_Loaded-Ereignis hinzu, um das Ergebnis zu verarbeiten.

1

Angenommen, Ihre Methode invoke ist in der FooDomainService würden Sie es so nennen:

fooDomainServiceInstance.Context.GetCities((op) => 
{ 
    if (op.HasError) 
    { 
    // Handle error. 
    } 
    else 
    { 
    var data = (op as InvokeOperation<IEnumerable<string>>).Value; 
    // Do something with the data... 
    } 
}, null); 
+0

Problem ist, dass es keine Context-Eigenschaft auf der DomainServiceInstance gibt. Es gibt einen DataContext und einen DomainContext, von denen keiner die GetCities-Methode hat. –

+0

Sie haben die zwei Projekte, die RIA erstellt (das .Web und das Silverlight). Wenn Sie in Silverlight einen neuen domainServiceInstanceDomainContext erstellen, können Sie die GetCities-Methode darauf sehen (mit Intellisense)? – Rus

+0

Nein, das ist das Problem. Ich habe gestern Abend daran gearbeitet, und es sieht so aus, als müsste ich den domainServiceInstance.DomainContext auf meinen DomainService-Typ umwandeln, um daran zu kommen. Ihre Antwort hat mich jedoch in diese Richtung geführt. Vielen Dank. +1 –

Verwandte Themen