如何从自定义类型转换为HttpPostedFileBase

时间:2018-12-16 23:53:06

标签: c# byte httppostedfilebase

我有一个来自项目中一个类的自定义对象。例如,abc类型的对象MyCustomClass 我需要在程序中调用之前编写的方法。此方法采用一个HttpPostedFileBase参数,然后将其保存在服务器上。 所以我的问题是,我该如何转换object并将其传递给HttpPostedFileBase,以便从那时起就可以完成工作。

这是我到目前为止发现和发现的内容: how to convert a byte[] to HttpPostedFileBase using c#

2 个答案:

答案 0 :(得分:1)

如果该方法期望使用HttpPostedFileBase,则需要使MyCustomClass继承自HttpPostedFileBase或仅创建一个新对象HttpPostedFileBase来获取所需的信息您的MyCustomClass对象。

答案 1 :(得分:1)

如果您的课程可序列化,则可以使用BinaryFormatter。以下方法可以帮助您:

public byte[] ConvertObjectToByteArray(object source)
{
    var formatter = new BinaryFormatter();
    using (var memoryStream = new MemoryStream())
    {
        formatter.Serialize(memoryStream, source);                
        return memoryStream.ToArray();
    }
}

来源:convert a class to byte array + C#

然后您可以根据链接使用它:

// code will look like below:
MyCustomClass abc = new MyCustomClass();
var byteArray = ConvertObjectToByteArray(abc);
HttpPostedFileBase objFile = (HttpPostedFileBase)new MemoryPostedFile(byteArray);