Вам потребуется сгенерировать новый клиентский прокси для использования в приложении Silverlight - IOW, из приложения Silverlight добавьте новую ссылку на службу и укажите ее для службы.
Затем вы увидите, что все немного по-другому - вы обнаружите, что в прокси есть асинхронные методы, а не синхронные, которые вы видели в прокси, созданном для консольного приложения. Так что в приложении silverlight ваш код будет выглядеть примерно так:
client.GetTagsCompleted += [my event handler];
client.GetTagsAsync();
и в вашем обработчике событий:
if (e.Error == null)
if (!e.Cancelled)
List<Tag> tags = new List<Tag>(e.result);
Когда вы добавляете сервисную ссылку в приложение silverlight, убедитесь, что вы разбираетесь с дополнительными настройками, потому что вы можете изменить тип коллекции, в которой возвращаются элементы, и т. Д. (Коллекция возврата по умолчанию - ObservableCollection<T>
).
Если вы хотите избежать такого рода вещей (разные прокси для разных приложений или модулей), рассмотрите возможность использования svcutil для генерации прокси вместо того, чтобы позволить VS делать это (VS не использует svcutil).