Question

I'm using a WCF .svc class like so:

[DataContract] public class FunInfo { ... }
[OperationContract, WebInvoke(BodyStyle = WebMessageBodyStyle.Wrapped, ResponseFormat = WebMessageFormat.Json)]

public FunInfo SetInformation(int a, int b) { ... }

When I get my JSON back, it looks like this:

{"SetInformationResult":{ ... } }

My question is: Where did SetInformationResult come from, and can I control it's name without renaming my class? To "d", for instance, to mimic what the ScriptService does?

EDIT: For posterity, relevant links I've found since: How can I control the name of generic WCF return types?

Was it helpful?

Solution

The name came from your operation name with "Result" appended to it. And you can rename it by using the [MessageParameter] attribute on the return of the method:

[OperationContract, WebInvoke(...)]
[return: MessageParameter(Name = "d")]
public FunInfo SetInformation(int a, int b) { ... }
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top