Click here to Skip to main content
11,415,390 members (83,665 online)
Rate this: bad
good
Please Sign up or sign in to vote.
See more: C# Services
Hi,

I am trying to get the list of sub-directories of a directory from svc service, but it shows an error --

The type System.IO.FileSystemInfo cannot be deserialized as it doesn't has parameter less public constructor.

Please help me out from this situation.

Code Snippet--

[OperationContract]
private System.Collections.Generic.List<DirectoryInfo> GetSubDirectories(string directoryPath)
{
    try
    {
        DirectoryInfo dir = new DirectoryInfo(directoryPath);
        DirectoryInfo[] dirs = dir.GetDirectories();
        System.Collections.Generic.List<DirectoryInfo> childs = new System.Collections.Generic.List<DirectoryInfo>();
        foreach (DirectoryInfo dir1 in dirs)
        {
           // XmlObjectSerializer xml_serial = new XmlObjectSerializer(typeof(XML_directory));
            childs.Add(dir1);
        }
 
        return childs;
    }
    catch (Exception) { return null; }
    //return null;
}
Posted 8-Mar-13 6:28am
Edited 8-Mar-13 7:14am
v4
Comments
sjelen at 8-Mar-13 12:11pm
   
Improve your question with some relevant code, so we can see what you are trying to do.

1 solution

Rate this: bad
good
Please Sign up or sign in to vote.

Solution 1

My first suggestion would have been to try to create an inherited object from the directoryinfo class. But it is sealed. Anyway I would not recomend to you to return with a list of DirectoryInfo. I would create a DTO (Data Transfer Object). See the following:

The DTO:
[DataContract]
public Class DirectoryInfoDTO
{
  [DataMember]
  public DateTime CreationTime {get ; set;}
  
  [DataMember]
  public string Name {get ; set;}
 
}

And then the code: // Include: System.Linq;
var result = dirs.Select((a,b) => new DirectoryInfoDTO()
                  {  
                      Name = a.FullName,
                      CreationTime = a.CreationTime
                  }

the result will be a collection of DirectoryInfoDTO
  Permalink  
v2

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

  Print Answers RSS
0 Sergey Alexandrovich Kryukov 9,270
1 OriginalGriff 7,512
2 Maciej Los 3,710
3 Abhinav S 3,325
4 Peter Leow 3,084


Advertise | Privacy | Mobile
Web03 | 2.8.150427.4 | Last Updated 12 Mar 2013
Copyright © CodeProject, 1999-2015
All Rights Reserved. Terms of Service
Layout: fixed | fluid

CodeProject, 503-250 Ferrand Drive Toronto Ontario, M3C 3G8 Canada +1 416-849-8900 x 100