I have several WCF service contracts, all of which contain exactly the same method StopOperation, having the same signature:
[ServiceContract]
public interface IMyServiceA
{
[FaultContract(typeof(ServiceAError))]
[OperationContract]
void StopOperation(TaskInformation taskInfo);
// other specific methods
}
What I’d like to be able to do is to extract StopOperation into an interface, IStoppable, and have all my services inherit this operation. However, I have a problem with the FaultContract definition, as it defines a concrete fault type.
Is it possible to have FaultContract refer to an abstract ErrorBase type, and have the concrete ones specified by KnownContract somehow? Kind of like:
[ServiceContract]
public interface IStoppable
{
[FaultContract(typeof(ErrorBase))]
[OperationContract]
void StopOperation(TaskInformation taskInfo);
}
No matter where I tried specifying KnownContract, it didn’t seem to take.
Have you tried using a generic type ?
For instance:
Then you’d say
Haven’t tested this, but I don’t see any reason why this shouldn’t work.