Click here to Skip to main content
12,076,657 members (49,244 online)
Rate this:
 
Please Sign up or sign in to vote.
See more: C# service
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 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
Top Experts
Last 24hrsThis month


Advertise | Privacy | Mobile
Web02 | 2.8.160208.1 | Last Updated 12 Mar 2013
Copyright © CodeProject, 1999-2016
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