这是我遇到的一个非常棘手的问题,我没有得到任何东西,我会尽量清楚
我正在开发一个项目,它在数据库中获取数据并从中创建Json文件,这是抛出异常的方法:
public async Task<int> RecupInters(List<string> fileExist)
{
List<JsonFile> ljf = (await myservice.getJsonFilesAsync(Switcher.pageSwitcher.currentUser, fileExist.ToArray())).ToList();
if (ljf.Count > 0)
{
float percentPerFile = 50 / ljf.Count;
string jsonFolder = Data.HelperDirectory.getFolderDocumentAndCreate("JSON");
float percent = 0.0f;
foreach (JsonFile jf in ljf)
{
this.changeValues("Récupération de nouveaux rapports", percent, "Sauvegarde des fichiers d'interventions");
File.WriteAllText(jsonFolder + jf.Name, jf.Content);
percent = percent + percentPerFile;
}
}
return ljf.Count;
}
它说“从demandeAideFilledAndItsMine获取值时出错”并抛出JsonSerialization异常和nullReferenceException。 demandeAidefilledAndItsMine是FichePreDiag类的属性:
public bool demandeAideFilledAndItsMine { get { return (this.NomDemandeAide != null && isMine()); } }
(如果需要,这是IsMine方法)
public bool isMine()
{
if (!String.IsNullOrEmpty(this.NomDemandeAide))
{
return this.NomDemandeAide.Equals(DAL.getUserByUsername(Environment.UserName).fullName);
}
else
return false;
}
FichePreDiag类是由EntityFramework生成的数据库对象。 无论如何,实际上当它调用方法getJsonFilesAsync时抛出Exception,所以我深入研究它,它来自这里:
public System.Threading.Tasks.Task<DAO.JsonFile[]> getJsonFilesAsync(DAO.User u, string[] fileExist) {
return base.Channel.getJsonFilesAsync(u, fileExist);
}
此方法属于partial类,并在引用中调用相同名称的方法:
[System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IService1/getJsonFiles", ReplyAction="http://tempuri.org/IService1/getJsonFilesResponse")]
System.Threading.Tasks.Task<DAO.JsonFile[]> getJsonFilesAsync(DAO.User u, string[] fileExist);
我无法深入了解。我现在很困惑,我需要帮助。
感谢您的时间