To elaborate a bit more as an extension to Phil's answer: the reason is because
a datarow relies on the columns collection of the
containing datatable: a datarow's value on position 3 has no meaning unless you
know what the column is on position 3.
So, you can't instantiate a datarow without having it placed inside a
datatable, this thus means there's no constructor you can call
to instantiate a datarow, you can only create a datarow through a datatable.
Thus this also means that serializing solely a datarow doesn't make any sense
as the deserialized data has no real meaning: there
are no columns available.
FB
> datarow does not implement iserializable and is not marked
> Serializable()
>
> i wouldn't suggest asking about a parameterless ctor on the
> 'ADVANCED-DOTNET' list. maybe try the VBDOTNET list as a
> better place to post this question.
>
> basically it means the datarow does not have a method called
> New() that takes no arguments.
>
>
> -----Original Message-----
> From: Discussion of advanced .NET topics.
> [mailto:[EMAIL PROTECTED] Behalf Of
> Manoj Aggarwal
> Sent: Wednesday, October 18, 2006 9:47 AM
> To: [email protected]
> Subject: Re: [ADVANCED-DOTNET] Serializing a datarow in webservices
>
>
> Can you please explain why is it so...
> Also It will be helpful if u can explain what is "datarow
> with parameterless constructor", an example will help me a
> long way -----Original Message-----
> From: Discussion of advanced .NET topics.
> [mailto:[EMAIL PROTECTED] On Behalf Of Phil Sayers
> Sent: Wednesday, October 18, 2006 06:36 PM
> To: [email protected]
> Subject: Re: [ADVANCED-DOTNET] Serializing a datarow in webservices
>
> a datarow is not serializable.
> you should return a datatable with a single row in it....or a
> custom object that contains the information.
>
> -----Original Message-----
> From: Discussion of advanced .NET topics.
> [mailto:[EMAIL PROTECTED] Behalf Of
> Manoj Aggarwal
> Sent: Wednesday, October 18, 2006 2:08 AM
> To: [email protected]
> Subject: [ADVANCED-DOTNET] Serializing a datarow in webservices
>
>
> Dear Friends,
>
> I am trying the return a datarow from a webmethod.
> I am getting the following error when I try to add the
> webreference in my windows forms code:
>
> DSOrders.DTInvoiceSelectByBookingIdRow can not be serialized
> because it does not have parameterless constructor.
>
> I am using the following code:
> [WebMethod]
> public DSOrders.DTInvoiceSelectByBookingIdRow
> GetInvoiceByBookingId(Int64
> BookingId)
> {
> DAInvoiceSelectByBookingId objDa = new
> DAInvoiceSelectByBookingId();
> DSOrders.DTInvoiceSelectByBookingIdDataTable dtInvoice;
> try
> {
> dtInvoice = objDa.GetInvoiceByBookingId(BookingId);
> }
> catch (Exception ex)
> {
> throw ex;
> }
> if (dtInvoice.Rows.Count == 0)
> {
> throw new Exception("Invalid BookingId");
> }
> DSOrders.DTInvoiceSelectByBookingIdRow dr =
> (DSOrders.DTInvoiceSelectByBookingIdRow)dtInvoice.Rows[0];
> return dr;
> }
>
>
> Tried to google, but of now use.
>
> Thanks,
> Manoj
>
> ===================================
> This list is hosted by DevelopMentor. http://www.develop.com
>
> View archives and manage your subscription(s) at
> http://discuss.develop.com
>
> ===================================
> This list is hosted by DevelopMentor. http://www.develop.com
>
> View archives and manage your subscription(s) at
> http://discuss.develop.com
>
> ===================================
> This list is hosted by DevelopMentor. http://www.develop.com
>
> View archives and manage your subscription(s) at
> http://discuss.develop.com
>
> ===================================
> This list is hosted by DevelopMentor. http://www.develop.com
>
> View archives and manage your subscription(s) at
> http://discuss.develop.com
>
===================================
This list is hosted by DevelopMentorĀ® http://www.develop.com
View archives and manage your subscription(s) at http://discuss.develop.com