2011-01-27 2 views
0

В настоящее время у меня есть приложение silverlight, в котором есть библиотека классов silverlight. Библиотека классов Silverlight имеет ссылку на службу WCF, которая работает как ожидается для небольших данных.Поведение Silverlight maxItemsInObjectGraph

Однако мы столкнулись с проблемой, вызванной значением maxItemsInObjectGraph по умолчанию. Мы протестировали его с увеличенным значением (вызванное из приложения vb app в поведении), и оно работает, однако мы не уверены, как установить значение maxItemsInObjectGraph, когда оно находится в библиотеке классов silverlight (поскольку оно определено только в файле clientconfig и никакие услуги не добавляются клиенту).

Я видел сообщения о добавлении его в web.config, но это похоже на применение, когда служба вызывается непосредственно приложением не библиотекой классов?

Любые идеи?

Приветствия

ответ

0

Вы можете установить maxItemsInObjectGraph автоматически:

ChannelFactory<IMyService> factory = new ChannelFactory<IMyService>(binding, endpoint); 
foreach (var operation in channelFactory.Endpoint.Contract.Operations) 
{ 
    var behavior = operation.Behaviors.Find() as DataContractSerializerOperationBehavior; 
    if (behavior != null) 
    { 
     behavior.MaxItemsInObjectGraph = 2147483647;  
    } 
} 
+0

Привет Werlang, это, кажется, требует привязки и конечной точки должны быть жёстко тоже. В любом случае я могу выбрать привязку/конечную точку из serviceconfig, а также реализовать вышеперечисленное? – Carl

+0

Также DataContractSerializerOperationBehavior недоступен в среде Silverlight 4. .NET? – Carl

Смежные вопросы