Так что, если вы хотите взаимодействовать со службами, не относящимися к Microsoft, вам, вероятно, следует избегать любого не примитивного типа. WCF использует сериализацию для кодирования данных для передачи, а Java, например, не сможет десериализовать хеш-таблицу. WCF, однако, построен на основе SOAP, поэтому, немного поработав, вы сможете получить любую функцию SOAP, работающую между клиентом JAVA и службой WCF, или наоборот.
Только не забывайте составлять контракты примитивов, и вы должны делать все в порядке.