7

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?

Community
  • 1
  • 1
Scott Stafford
  • 43,764
  • 28
  • 129
  • 177

1 Answers1

19

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) { ... }
carlosfigueira
  • 85,035
  • 14
  • 131
  • 171