Create a WCF service

Creating contracts

On the exam, if you see a custom data type, remember that you must be able to serialize it. As such, the class definition should be decorated with a DataContract attribute or another serializer type. Custom exception types can also be presented. These should be decorated with a FaultContract attribute.


Although custom bindings are something you need to be familiar with if you are planning on working with WCF, anything more complicated than their simple existence is unlikely to appear on the exam.


On the exam, EmitDefaultValue might be used in a question about how the size of the serialized message must be kept to an absolute minimum or about it might be mentioned as part of interoperability issues and the serialization format specifically.

Configure WCF services by using configuration settings

Config files

There are several questions in the exam that show you a section of a configuration file on one side of the screen, with blank boxes over key elements, and the available choices on the other side of the screen. You are asked to drag and drop those elements in the correct places. You need to get all the items correct in order to get the question right.

Configuring bindings

Remember that, even if you don’t know the answer to a question, if you can eliminate any wrong choices you immediately increase your chances of getting the item correct. On the new versions of the exam, in which you have all the drag-and-drop items, you have to get several things right in order to get the item correct, and you might find a question that has three empty boxes that need answers, but x (where x > 3) available choices. In the previous item, just by reviewing the resulting items that are created from the configuration file, you can know that the answer will have either binding=somebinding or bindingconfiguration=someconfiguration (or both) because they are the only two possible attributes that are available outside of scheme. If the only bindings you saw were netMsmqBinding or new NamedPipeBinding, that is your answer, even if the use case isn’t something that you would typically want to do because no other attributes are allowed to exist there.

Consume WCF services

Generating proxies by creating a service reference

For test questions, the only things that you might be asked about on this portion are whether to use the Go feature coupled with a URI, the Discover option, or about specifying a specific namespace.