Консумирам WCF услуги от приложение Silverlight (MVVM) и Windows Phone. Имам клас на услугата (автоматично генериран) и едно IServiceRepository изглежда по следния начин
public interface IServiceRepository
{
event EventHandler<SomeEventArgs> GetDataCompleted;
void Data GetData();
// 10 more methods for fetching different data.
}
Моето SerViceRepository изглежда по следния начин
public class ServiceRepository : IServiceRepository
{
public event EventHandler<SomeEventArgs> GetDataCompleted;
public void Data GetData()
{
var proxy = new ActualServiceRefClient();
proxy.GetDataCompleted += PrivateGetDataCompleted;
proy.GetDatAsync();
}
private void PrivateGetDataCompleted(object s, SomeEventArgs e)
{
// Error check and all
if(GetDataCompleted != null)
GetDataCompleted(this, new SomeEventArgs(...));
}
}
Извиквам тези методи от моите ViewModels. Сега въпросите ми са...
- В момента създавам прокси класа и прикачвам манипулатор на събития с него във всеки метод. Трябва ли да го направя в конструктора на ServiceRepository? Както казах, имам около 10 до 12 метода за обслужване, на които да се обадя.
- Трябва ли да дерегистрирам манипулатора на събития в завършения метод?