Click here to Skip to main content
15,073,911 members
Please Sign up or sign in to vote.
4.00/5 (1 vote)
See more:
I have created a WCFservice.find the below interface service class

    public interface IService
        DataSet GetStandards();


    public class Service : IService 

        public DataSet GetStandards()
            Standard standard = new Standard();
            DataSet objResponseBE;
            objResponseBE = standard.GetStandards();
            return objResponseBE;


I have also created proxy class for that wcf service
Though that proxy class i am calling business layer and through business layer called DAL
in business layer GetStandard function which return object type in the DAL layer class function i am getting dataset which i am passing it to business layer function GetStandard where return type is object.When comming to this level i am not getting error.But when wcf service gets the response from business layer i am getting following error

There was an error while trying to serialize parameter InnerException message was <br />
'Type 'System.Data.DataSet' with data contract name 'DataSet:' is not expected.

Consider using a DataContractResolver or add any types not known statically to the list of known types - for example,
by using the KnownTypeAttribute attribute
or by adding them to the list of known types passed to DataContractSerializer.'.

but when i am passing datset in all layer funtion i am not getting error
But i want to pass object because always i am not getting dataset if i am getting error then how can i pass that.So for that i have used return type as object
please help me into this...
Updated 13-Jan-13 9:46am

I would suggest that you don't transfer a DataSet but rather return a typed list.
List<StandardRecord> GetStandards();

There are two benefits:

  1. Efficiency - DataSet is a very complex type, and reconstructing it based on deserialization using refelction is costly
  2. Makes the intent behind the operation clearer

But if you really want to do this have a look at: Optimizing Serialization in .NET[^]

Best regards
Espen Harlinn
Follow the instructions as given by the error: [...] using the KnownTypeAttribute[^]attribute [...].

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)

CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900