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