Explanation To create a duplex contract * (C) Create the interface that makes up the server side of the duplex contract. * (E) Apply the ServiceContractAttribute class to the interface. * Declare the method signatures in the interface. * (E) Apply the OperationContractAttribute class to each method signature that must be part of the public contract. * Create the callback interface that defines the set of operations that the service can invoke on the client. * Declare the method signatures in the callback interface. * Apply the OperationContractAttribute class to each method signature that must be part of the public contract. * (F) Link the two interfaces into a duplex contract by setting the CallbackContract property in the primary interface to the type of the callback interface. Reference: How to: Create a Duplex Contract