我對C#比較新,嘗試創建一個Web API Web服務,該服務以JSON格式返回Web服務器上文件夾的內容。Web API JSON Web服務顯示文件夾文件信息
這裏是我Fileinformation.cs類:
[DataContract]
public class FileInformation
{
public FileInformation(string name, string mimeType, long size, DateTime lastModified)
{
this.name = name;
this.mimeType = mimeType;
this.size = size;
this.lastModified = lastModified;
}
public string name { get; set; }
[JsonProperty(PropertyName = "mime-type")]
public string mimeType { get; set; }
public DateTime lastModified { get; set; }
public long size { get; set; }
}
這裏是我的控制器:
public class ValuesController : ApiController
{
// GET api/values
public List<FileInformation> Get()
{
string ImageryFolder = @WebConfigurationManager.AppSettings["folderName"];
string fileExtension = WebConfigurationManager.AppSettings["fileExtension"];
DirectoryInfo d = new DirectoryInfo(ImageryFolder);
FileInfo[] Files = d.GetFiles("*."+ fileExtension);
var list = new List<FileInformation>();
foreach (FileInfo fileInfo in Files)
{
string name = ImageryFolder + "\\" + fileInfo.Name;
Debug.WriteLine(name);
string mimeType = MimeMapping.GetMimeMapping(fileInfo.Name);
long size = fileInfo.Length;
DateTime lastModified = fileInfo.LastWriteTime;
FileInformation newFile = new FileInformation(name, mimeType, size, lastModified);
list.Add(newFile);
}
//var jsonResult = JsonConvert.SerializeObject(list);
return list;
}
}
我目前得到看起來像這樣的輸出,因爲有8個文件在它靠近該文件夾與它返回的FileInformation節點數量相同:
是你的問題*爲什麼我的屬性丟失了?*數據契約序列化是可選的。使用'[DataMember]'標記你的屬性或切換到[退出模型](http://stackoverflow.com/問題/ 19964866/DataContractSerializer的 - 是 - 一 - 選擇在串 - 如何對做-IT-退出)。或者是你的問題,*爲什麼我的服務返回XML?* – dbc
@dbc D'哦!我知道......將[DataMember]添加到我的每個屬性都是解決方案。如果您添加它,我可以將其標記爲答案。謝謝! – Nate23VT