Windows Vista Forums
Vista Forums Home Join Vista Forums Windows 7 Forum Vista Tutorials Tags
Welcome to Windows Vista Forums. Our forum is dedicated to helping you find solutions with any problems, errors or issues you are experiencing with Windows Vista. The Vista forum also covers news and updates and has an extensive Windows Vista tutorial section that covers a wide range of tips and tricks.

Go Back   Vista Forums > Misc Newsgroups > WinFX General

Vista - WCF converts List<string> to string[]

 
 
Old 10-30-2006   #1 (permalink)
John


 
 

WCF converts List<string> to string[]

I'm having a problem passing List<T> from a service. I don't know if the
problem is at the service or the client. For some reason a List is getting
converted to an array. Here are the details:

I have a simple type called SimpleType that contains a List:

[DataContract]
public class SimpleType
{
[DataMember]
public List<string> Strings
{
get { return strings; }
set { strings = value; }
}
private List<string> strings;
}

The service code is equally simple:

public SimpleType GetSimpleType()
{
return new SimpleType();
}

The client creates the following code for SimpleType's List:

[System.Runtime.Serialization.DataMemberAttribute()]
public string[] Strings
{
get
{
return this.StringsField;
}
set
{
this.StringsField = value;
}
}

Is there something I need to do to have a List created at the client rather
than an array? Is there a property I forgot to set somewhere?

Thanks,
John



My System SpecsSystem Spec
Old 10-31-2006   #2 (permalink)
Chris Mullins


 
 

Re: WCF converts List<string> to string[]

"John" <revelation@nospam.nospam> wrote
> I'm having a problem passing List<T> from a service.


> [DataMember]
> public List<string> Strings
> {
> get { return strings; }
> set { strings = value; }
> }


If nothing else, this code won't pass any of the Static Code Analysis tools.
You should be exposing the IList<> interface, or one of the
System.Collections.ObjectModel collections. Requiring things via your
interface (especially one exposed on the web) to be an actual List<> class
is bad form.

--
Chris Mullins, MCSD.NET, MCPD:Enterprise
http://www.coversant.net/blogs/cmullins


My System SpecsSystem Spec
Old 10-31-2006   #3 (permalink)
John


 
 

Re: WCF converts List<string> to string[]

Thank you for the critique, Chris. This was only a simple example to
demonstrate the problem I'm having. But I welcome any constructive advice
you can provide. If you can recommend some good material on the subject I
would appreciate it. But now back to my problem...

I've tried List<>, IList, ArrayList and even
System.Collections.ObjectModel.Collection. In all cases the client builds a
proxy containing a simple array. I would like it to create something more
useful than an array. Is that possible?

John


"Chris Mullins" <cmullins@yahoo.com> wrote in message
news:uXzJpzS$GHA.1168@TK2MSFTNGP03.phx.gbl...
> "John" <revelation@nospam.nospam> wrote
>> I'm having a problem passing List<T> from a service.

>
>> [DataMember]
>> public List<string> Strings
>> {
>> get { return strings; }
>> set { strings = value; }
>> }

>
> If nothing else, this code won't pass any of the Static Code Analysis
> tools. You should be exposing the IList<> interface, or one of the
> System.Collections.ObjectModel collections. Requiring things via your
> interface (especially one exposed on the web) to be an actual List<> class
> is bad form.
>
> --
> Chris Mullins, MCSD.NET, MCPD:Enterprise
> http://www.coversant.net/blogs/cmullins
>
>



My System SpecsSystem Spec
Old 07-17-2008   #4 (permalink)


Windows XP
 
 

Re: WCF converts List<string> to string[]

My System SpecsSystem Spec
 

Thread Tools


Similar Threads
Thread Forum
Find a string within a variable string PowerShell
Fast way to determine if a string contains a member of a list of strings .NET General
problems with $var | select-string -pattern $string -q PowerShell
How export-csv deals with string versus string[] PowerShell
String PRODUCT_NAME was not found in string table Vista General


Vista Forums is an independent web site and has not been authorized,
sponsored, or otherwise approved by Microsoft Corporation.
"Windows Vista", the Start Orb, and related materials are trademarks of Microsoft Corp.
© Designer Media Ltd

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46