我可能会选择如下所示的实现:
private void ReadContent(string path)
{
Contract.Requires<FileMissingException>(File.Exists(path));
string content = filehelperobj.GetContent(path);
m_xmlobj = content;
}
发布编辑
因为它是您要验证的内容,所以我会Contract.Ensures(!String.IsNullOrEmpty(Contract.Result<string>()));
在filehelperobj.GetContent(string)
方法中放置一个。然后,如果正在读取的内容为 null 或为空,我会抛出异常。例如
public string GetContent(string path)
{
Contract.Requires<FileMissingException>(File.Exists(path));
Contract.Ensures(!String.IsNullOrEmpty(Contract.Result<string>()));
using(var reader = new StreamReader(File.OpenRead(path)))
{
var content = reader.ReadToEnd();
if(String.IsNullOrEmpty(content))
throw new FileContentException("No content found at file: " + path);
return content;
}
}