Met behulp van een objectenboom kan de client aangeven welke capabilities de resultaten in de response moeten voldoen. De zoekcode heb ik al geschreven en ook de rest van de aanroep en de response gaan prima door middel van SOAP, alleen bij het public maken van de interface krijg ik probemen
Cannot serialize member Request.capability of type Capability because it is an interface.
Als ik de interface echter niet public maak krijg ik de melding dat de interface op een ander toegankelijkheidsniveau zit. Ik heb de interface wel nodig omdat een operator (zoals gebruikelijk in een boom) een eindnode kan bevatten maar ook een andere operator. Ik heb al wel vluchtig een poging gedaan om alles op te bouwen naar overerving maar daar kreeg ik dezelfde problemen.
Mijn vraag is dan ook, is hier een work-around voor? Suggesties hoe ik dit op een nette manier om kan bouwen zijn natuurlijk ook welkom.
De code van de interface en de classes die deze implementeren.
Edit: codetags toegevoegd
Cannot serialize member Request.capability of type Capability because it is an interface.
Als ik de interface echter niet public maak krijg ik de melding dat de interface op een ander toegankelijkheidsniveau zit. Ik heb de interface wel nodig omdat een operator (zoals gebruikelijk in een boom) een eindnode kan bevatten maar ook een andere operator. Ik heb al wel vluchtig een poging gedaan om alles op te bouwen naar overerving maar daar kreeg ik dezelfde problemen.
Mijn vraag is dan ook, is hier een work-around voor? Suggesties hoe ik dit op een nette manier om kan bouwen zijn natuurlijk ook welkom.
De code van de interface en de classes die deze implementeren.
C#:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
| public interface Capability { } public enum OperatorName { And, Or } public class CapabilityNode : Capability { public CapabilityNode() { } public bool not = false; public string propertyname; public string propertyvalue; } public class CapabilityOperator : Capability { public CapabilityOperator() { } public bool not = false; public OperatorName operatorname; public Capability capability1; public Capability capability2; } |
Edit: codetags toegevoegd