WCF и IList of ISomething

Мне интересно, как сделать этот объект доступным через WCF:

[DataContract]
public class A : IA
{
    [DataMember]
    public List ListOfB { get; set; } 
}

public interface IA
{
    List ListOfB { get; set; }
}

с интерфейсом IB класса B .

Сгенерированный XSD:


  
    
  



ArrayOfanyType -> I'm feeling that it can't work since IB can't be tagged [DataContract].

0
nl ja de
Это должно помочь: stackoverflow.com/a/4720963/870604
добавлено автор ken2k, источник
@ ken2k +1, ты ответил на его вопрос передо мной.
добавлено автор Nick Ryan, источник

1 ответы

Чтобы сериализатор интерпретировал ваш контракт, их нужно выражать в терминах конкретных типов, а не интерфейсов. Если вы измените свой код на это (и отметьте класс B с соответствующими атрибутами DataContract и DataMember ), вам должно быть хорошо идти.

[DataContract]
public class A
{
    [DataMember]
    public List ListOfB { get; set; } 
}
0
добавлено
Конечно. Но мне все еще нужен мой A , чтобы иметь список IB , а не IB ) (тезисы разделяются, а A реализует IA , IA не должен знать B , а только IB ...
добавлено автор F--, источник
@FrancoisB. Я понимаю, это то, чего вы хотите, но вы не можете этого сделать. Контракт должен основываться на конкретных типах.
добавлено автор Nick Ryan, источник
Microsoft Stack Jobs
Microsoft Stack Jobs
1 788 участник(ов)

Work & freelance only Microsoft Stack. Feed https://t.me/Microsoftstackjobsfeed Чат про F#: @Fsharp_chat Чат про C#: @CSharpChat Чат про Xamarin: @xamarin_russia Чат общения:@dotnettalks

Microsoft Developer Community Chat
Microsoft Developer Community Chat
584 участник(ов)

Чат для разработчиков и системных администраторов Microsoft Developer Community. __________ Новостной канал: @msdevru __________ Баним за: оскорбления, мат, рекламу, флуд, флейм, спам, NSFW контент, а также большое количество оффтоп тем. @banofbot