Эти сценарии (не связанные с EntityFramework RIA Services с Silverlight) явно недостаточно документированы, и я надеюсь вскоре опубликовать некоторые записи блога, чтобы охватить эти сценарии (в том числе как использовать NHibernate).
Вот один из способоввыполните то, что вы просите:
Установите «Инструменты Silverlight 4 для Visual Studio 2010», если вы этого еще не сделали:
http://www.microsoft.com/downloads/en/details.aspx?FamilyID=b3deb194-ca86-4fb6-a716-b67c2604a139&displaylang=en
Создайте новое приложение для навигации Silverlightв Visual Studio 2010 (установите флажок, чтобы включить службы RIA).
Измените файл web.config в веб-проекте следующими способами:
Враздел, добавьте:
<httpModules>
<add name="DomainServiceModule"
type="System.ServiceModel.DomainServices.Hosting.DomainServiceHttpModule,
System.ServiceModel.DomainServices.Hosting, Version=4.0.0.0,
Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
</httpModules>
Добавитьраздел как пэр:
<system.serviceModel>
<serviceHostingEnvironment aspNetCompatibilityEnabled="true"
multipleSiteBindingsEnabled="true" />
</system.serviceModel>
Добавьте следующие ссылки на веб-проект:
System.ServiceModel.DomainServices.Hosting
System.ServiceModel.DomainServices.Server
Создайте новый класс VanillaDomainService в веб-проекте, который содержит ваш метод «return 100»:
[System.ServiceModel.DomainServices.Hosting.EnableClientAccess()]
public class VanillaDomainService :
System.ServiceModel.DomainServices.Server.DomainService
{
public int ReturnInteger100()
{
return 100;
}
}
Теперь вернемся к проекту приложения Silverlight, в Home.xaml.cs, в методе OnNavigatedTo, вызовите новый метод RIA Services (помните, что все вызовы асинхронные):
protected override void OnNavigatedTo(NavigationEventArgs e)
{
SilverlightApplication1.Web.VanillaDomainContext oneVanillaDomainContext =
new SilverlightApplication1.Web.VanillaDomainContext();
oneVanillaDomainContext.ReturnInteger100(
anInt => MessageBox.Show(anInt.Value.ToString()), null);
}
Теперь сборкаи запустить, и это должно быть.
Я проверил этот код, и он работал для меня.