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.
}