WCF основан на передаче сообщений, и эта передача сообщений моделируется с использованием схемы XML (XSD). Таким образом, все, что может быть выражено в схеме XML, может использоваться в WCF.
Это также означает, что интерфейсы не поддерживаются. Вам необходимо использовать фактические конкретные типы для параметров в ваших сервисных методах WCF.
В вашем случае создайте конкретный класс, который реализует ICustomData
, а затем используйте этот класс в качестве типа параметра.
В качестве справочного материала прочитайте MSDN Designing Contracts , в котором указаны параметры:
Параметры и возвращаемые значения
Каждая операция имеет возвращаемое значение и параметр, даже если они
недействительным. Однако, в отличие от локального метода, в котором вы можете передавать ссылки
к объектам от одного объекта к другому, сервисные операции не проходят
ссылки на объекты. Вместо этого они передают копии объектов.
Это важно, поскольку каждый тип используется в параметре или возвращаемом
значение должно быть сериализуемым; , то есть должно быть возможно преобразовать
объект этого типа в поток байтов и из потока байтов
в объект.