How to do: Web Services returning a class that inherits arraylist

Discussion in 'ASP .Net Web Services' started by Hammer, Sep 18, 2008.

  1. Hammer

    Hammer Guest

    All,

    I have a class called CartLine and I try to return this class in a Web
    Method I can not!

    [Serializable]
    public class Cartline: Arraylist
    {
    // class properties and etc.
    }

    The proxy reference doesn't contain any information even though I use the
    following:

    [XmlInclude(typeof(ShoppingCart)), XmlInclude(typeof(Business.Cart))]
    public CartLine GetCartItem(String m_ShoppingCartUserId,
    Common.UserStatus eStatus)

    And to add insult to injury, when I uses this web method calls to returns my
    class as object[] that I can not cast back to my business class.

    Can anyone shed some light on how to accomplish this?
     
    Hammer, Sep 18, 2008
    #1
    1. Advertising

  2. On Thu, 18 Sep 2008 11:31:04 -0700, Hammer
    <> wrote:

    >All,
    >
    >I have a class called CartLine and I try to return this class in a Web
    >Method I can not!
    >
    >[Serializable]
    >public class Cartline: Arraylist
    >{
    > // class properties and etc.
    >}
    >
    >The proxy reference doesn't contain any information even though I use the
    >following:
    >
    > [XmlInclude(typeof(ShoppingCart)), XmlInclude(typeof(Business.Cart))]
    > public CartLine GetCartItem(String m_ShoppingCartUserId,
    >Common.UserStatus eStatus)
    >
    >And to add insult to injury, when I uses this web method calls to returns my
    >class as object[] that I can not cast back to my business class.
    >
    >Can anyone shed some light on how to accomplish this?
    >


    You're trying to return an object which contains both data and
    functionality which can't be done. The objects in the array are of a
    type declared within the web service's namespace. This is because not
    every client will know about the System.Collections namespace and its
    ArrayList type.

    Web service types are described as simple objects because they are not
    based upon true object-oriented types. The SOAP in SOAP web service
    stands for Simple Object Access Protocol.A different mechanism will be
    needed to pass complex types.

    regards
    A.G.
     
    Registered User, Sep 18, 2008
    #2
    1. Advertising

  3. Hammer

    Hammer Guest

    Re: How to do: Web Services returning a class that inherits arrayl

    I beg differ,

    its an array. Array types can be defined in the soap schema. I'm just trying
    to find out why doesn't mines get defined. I can update my reference files
    but it does me little good if I then update my web references.

    Has anyone encounter this problem or has a possible solution?

    Thanks,

    "Registered User" wrote:

    > On Thu, 18 Sep 2008 11:31:04 -0700, Hammer
    > <> wrote:
    >
    > >All,
    > >
    > >I have a class called CartLine and I try to return this class in a Web
    > >Method I can not!
    > >
    > >[Serializable]
    > >public class Cartline: Arraylist
    > >{
    > > // class properties and etc.
    > >}
    > >
    > >The proxy reference doesn't contain any information even though I use the
    > >following:
    > >
    > > [XmlInclude(typeof(ShoppingCart)), XmlInclude(typeof(Business.Cart))]
    > > public CartLine GetCartItem(String m_ShoppingCartUserId,
    > >Common.UserStatus eStatus)
    > >
    > >And to add insult to injury, when I uses this web method calls to returns my
    > >class as object[] that I can not cast back to my business class.
    > >
    > >Can anyone shed some light on how to accomplish this?
    > >

    >
    > You're trying to return an object which contains both data and
    > functionality which can't be done. The objects in the array are of a
    > type declared within the web service's namespace. This is because not
    > every client will know about the System.Collections namespace and its
    > ArrayList type.
    >
    > Web service types are described as simple objects because they are not
    > based upon true object-oriented types. The SOAP in SOAP web service
    > stands for Simple Object Access Protocol.A different mechanism will be
    > needed to pass complex types.
    >
    > regards
    > A.G.
    >
     
    Hammer, Sep 19, 2008
    #3
  4. Hammer

    Hammer Guest

    Re: How to do: Web Services returning a class that inherits arrayl

    I found the solution to my problem, when you add a WCF service - select the
    advance button, select the array dropdown and then select the appropriate
    array that applys to your situation.

    Yupper, hidden to plain view....

    Happy hunting...

    "Hammer" wrote:

    > I beg differ,
    >
    > its an array. Array types can be defined in the soap schema. I'm just trying
    > to find out why doesn't mines get defined. I can update my reference files
    > but it does me little good if I then update my web references.
    >
    > Has anyone encounter this problem or has a possible solution?
    >
    > Thanks,
    >
    > "Registered User" wrote:
    >
    > > On Thu, 18 Sep 2008 11:31:04 -0700, Hammer
    > > <> wrote:
    > >
    > > >All,
    > > >
    > > >I have a class called CartLine and I try to return this class in a Web
    > > >Method I can not!
    > > >
    > > >[Serializable]
    > > >public class Cartline: Arraylist
    > > >{
    > > > // class properties and etc.
    > > >}
    > > >
    > > >The proxy reference doesn't contain any information even though I use the
    > > >following:
    > > >
    > > > [XmlInclude(typeof(ShoppingCart)), XmlInclude(typeof(Business.Cart))]
    > > > public CartLine GetCartItem(String m_ShoppingCartUserId,
    > > >Common.UserStatus eStatus)
    > > >
    > > >And to add insult to injury, when I uses this web method calls to returns my
    > > >class as object[] that I can not cast back to my business class.
    > > >
    > > >Can anyone shed some light on how to accomplish this?
    > > >

    > >
    > > You're trying to return an object which contains both data and
    > > functionality which can't be done. The objects in the array are of a
    > > type declared within the web service's namespace. This is because not
    > > every client will know about the System.Collections namespace and its
    > > ArrayList type.
    > >
    > > Web service types are described as simple objects because they are not
    > > based upon true object-oriented types. The SOAP in SOAP web service
    > > stands for Simple Object Access Protocol.A different mechanism will be
    > > needed to pass complex types.
    > >
    > > regards
    > > A.G.
    > >
     
    Hammer, Sep 26, 2008
    #4
  5. Re: How to do: Web Services returning a class that inherits arrayl

    On Fri, 26 Sep 2008 12:28:06 -0700, Hammer
    <> wrote:

    >I found the solution to my problem, when you add a WCF service - select the
    >advance button, select the array dropdown and then select the appropriate
    >array that applys to your situation.
    >
    >Yupper, hidden to plain view....
    >
    >Happy hunting...
    >

    Good stuff. I hadn't considered WCF primarily because I haven't had
    occasion to use the tool. Most of what I do interacts with legacy
    systems and their seeming eccentricities.

    Doesn't a WCF webservice require a WCF client?

    regards
    A.G.

    >"Hammer" wrote:
    >
    >> I beg differ,
    >>
    >> its an array. Array types can be defined in the soap schema. I'm just trying
    >> to find out why doesn't mines get defined. I can update my reference files
    >> but it does me little good if I then update my web references.
    >>
    >> Has anyone encounter this problem or has a possible solution?
    >>
    >> Thanks,
    >>
    >> "Registered User" wrote:
    >>
    >> > On Thu, 18 Sep 2008 11:31:04 -0700, Hammer
    >> > <> wrote:
    >> >
    >> > >All,
    >> > >
    >> > >I have a class called CartLine and I try to return this class in a Web
    >> > >Method I can not!
    >> > >
    >> > >[Serializable]
    >> > >public class Cartline: Arraylist
    >> > >{
    >> > > // class properties and etc.
    >> > >}
    >> > >
    >> > >The proxy reference doesn't contain any information even though I use the
    >> > >following:
    >> > >
    >> > > [XmlInclude(typeof(ShoppingCart)), XmlInclude(typeof(Business.Cart))]
    >> > > public CartLine GetCartItem(String m_ShoppingCartUserId,
    >> > >Common.UserStatus eStatus)
    >> > >
    >> > >And to add insult to injury, when I uses this web method calls to returns my
    >> > >class as object[] that I can not cast back to my business class.
    >> > >
    >> > >Can anyone shed some light on how to accomplish this?
    >> > >
    >> >
    >> > You're trying to return an object which contains both data and
    >> > functionality which can't be done. The objects in the array are of a
    >> > type declared within the web service's namespace. This is because not
    >> > every client will know about the System.Collections namespace and its
    >> > ArrayList type.
    >> >
    >> > Web service types are described as simple objects because they are not
    >> > based upon true object-oriented types. The SOAP in SOAP web service
    >> > stands for Simple Object Access Protocol.A different mechanism will be
    >> > needed to pass complex types.
    >> >
    >> > regards
    >> > A.G.
    >> >
     
    Registered User, Sep 27, 2008
    #5
  6. Re: How to do: Web Services returning a class that inherits arrayl

    "Registered User" <> wrote in message
    news:...
    > On Fri, 26 Sep 2008 12:28:06 -0700, Hammer
    > <> wrote:
    >
    >>I found the solution to my problem, when you add a WCF service - select
    >>the
    >>advance button, select the array dropdown and then select the appropriate
    >>array that applys to your situation.
    >>
    >>Yupper, hidden to plain view....
    >>
    >>Happy hunting...
    >>

    > Good stuff. I hadn't considered WCF primarily because I haven't had
    > occasion to use the tool. Most of what I do interacts with legacy
    > systems and their seeming eccentricities.
    >
    > Doesn't a WCF webservice require a WCF client?


    No. WCF is simply the replacement for the older ASMX web service technology.
    It no more requires a WCF client than ASMX required a .NET client.

    --
    John Saunders | MVP - Connected System Developer
     
    John Saunders, Sep 28, 2008
    #6
    1. Advertising

Want to reply to this thread or ask your own question?

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. Joel Barsotti
    Replies:
    4
    Views:
    2,235
    Joel Barsotti
    Oct 30, 2003
  2. Replies:
    0
    Views:
    399
  3. Alex Nitulescu
    Replies:
    0
    Views:
    376
    Alex Nitulescu
    Feb 22, 2005
  4. Qi
    Replies:
    4
    Views:
    795
  5. ton
    Replies:
    1
    Views:
    1,074
    Teemu Keiski
    Jun 24, 2007
Loading...

Share This Page