C# 如何以FormFile格式将字符串保存到文件中
我有支持上传文件的控制器。在它里面是一个验证文件中数据的方法C# 如何以FormFile格式将字符串保存到文件中,c#,asp.net,.net,C#,Asp.net,.net,我有支持上传文件的控制器。在它里面是一个验证文件中数据的方法 IEnumerable<ValidationResult> Validate(ICollection<IFormFile> files) IEnumerable验证(ICollection文件) 它工作得很好。现在我需要向这个控制器写入测试。我的问题是:如何以FormFile格式将文件形式的光盘传送到我的函数中?通常,将这样的东西实现为接口的原因是为了帮助您能够测试它 您可以很容易地编写一个测试类,该类实现
IEnumerable<ValidationResult> Validate(ICollection<IFormFile> files)
IEnumerable验证(ICollection文件)
它工作得很好。现在我需要向这个控制器写入测试。我的问题是:如何以
FormFile
格式将文件形式的光盘传送到我的函数中?通常,将这样的东西实现为接口的原因是为了帮助您能够测试它
您可以很容易地编写一个测试类,该类实现ifformfile
,以便从测试传递给控制器方法
public class TestFormFile : IFormFile
{
// Implementation here
}
有关必须实现的所有属性和方法,请参见
您的实现可能应该在构造函数中获取字符串内容,并在ifformfile
上实现3个方法时使用它-例如OpenReadStream
的方法可以使用MemoryStream
实现(注意,您需要知道测试字符串的编码!):
FormFile
似乎不是默认.NET类库的一部分。请在您的问题中添加:(1)指向FormFile
类文档的链接,以及(2)您正在使用的第三方库的标记。Microsoft.AspNetCore.Http.ifformfile。我的坏消息来自.Net Core我的回答是一般性的-我不确定你的“字符串”来自哪里,以及它与这个问题的关系。@Jamiec它的文件内容。文件中的所有文本都是string
格式。@MKasprzyk-啊,显然是对的!更新了我的答案,增加了一些细节。
public class TestFormFile : IFormFile
{
private string testFileContents;
public TestFormFile(string testFileContent)
{
this.testFileContents = testFileContents;
}
public Stream OpenReadStream()
{
return new MemoryStream(Encoding.UTF8.GetBytes(testFileContents));
}
// Implement Other methods and properties.
}