Collection in WCFObjective
In this article, I will
1. How to work with collection in WCF?
2. How to work
with concrete collection List ?
3. How to work with interface
4. How to convert Array at client side to
You can also follow my blog
Collection at service side
and client side
COLLECTION is very much specific to .Net, so WCF does not expose it to the
metadata of the service. But they are very useful, so WCF provides dedicated
marshaling rules for collection.
Collection will be exposed as array
in service metadata
Let us say, you are having a contract and service
implementation as below, If you see carefully, I am returning a collection of
the type student
when you add this service reference at the client side, you can see the
collection is exposed as array. To see this, add the service reference in a
I have created a console client and added the service reference of
above service. When you click on ServiceReference1 in solution explorer, you
can open the proxy code generated at the client side. So click on object
browser and you can see that array has been returned in metadata instead of
At the client side
with List or Concrete collection
Imagine a scenario,
where return type is concrete collection not an interface. For example, we need
to return List instead if IEnumerable
know from .Net 3.5 all the classes are by default serialized. And collection we
are returning is marked with Serializable not with DataContract.
Add method should be,
you see above, we are returning List instead of
IEnumerable. So again at the client side, List
would be exposed as Student  in service metadata.
Service implementation is as
again after adding the service reference at the client side, you can see in the
object browser List is exposed as Student
to call the service at the client side, we need to get the student in array of
if you see above code, I am taking the output of GetStudents() method in array
of student(Student ).
If you want to avoid that, you do not want to use
array but instead you want to get collection at the client side.
Follow the below steps,
While adding the
service reference click on Advanced option
From the drop down of collection type tab, select
at the client side,
you can see at the client side proxy is having list as return not array .
I hope this article was useful to you. Thanks
for reading. Happy Coding .