Я использую службы WCF из приложения Silverlight (MVVM) и телефона Windows. У меня есть класс службы (автоматически сгенерированный), и один 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 сервисных методов для вызова.
- Должен ли я отменить регистрацию обработчика событий в завершенном методе?