Как преобразовать из пользовательского типа в HttpPostedFileBase
У меня есть пользовательский объект из одного из классов в моем проекте. Так, например, объект abc
от типа MyCustomClass
Мне нужно вызвать метод в моей программе, который был написан ранее. Этот метод занимает HttpPostedFileBase
параметр и идет и сохраняет его на сервере. Итак, мой вопрос, как я могу конвертировать object
чтобы иметь возможность передать его HttpPostedFileBase
так что он может делать свою работу с этого момента.
Это то, что я искал и нашел до сих пор: как преобразовать byte[] в HttpPostedFileBase с помощью C#
2 ответа
Если ваш класс сериализуем, то вы можете использовать BinaryFormatter. Следующий метод может помочь:
public byte[] ConvertObjectToByteArray(object source)
{
var formatter = new BinaryFormatter();
using (var memoryStream = new MemoryStream())
{
formatter.Serialize(memoryStream, source);
return memoryStream.ToArray();
}
}
Источник: преобразовать класс в байтовый массив + C#
Тогда вы можете использовать его по ссылке:
// code will look like below:
MyCustomClass abc = new MyCustomClass();
var byteArray = ConvertObjectToByteArray(abc);
HttpPostedFileBase objFile = (HttpPostedFileBase)new MemoryPostedFile(byteArray);
Если метод ожидает HttpPostedFileBase
вам нужно будет сделать свой MyCustomClass
наследовать от HttpPostedFileBase
или просто создайте новый объект HttpPostedFileBase
что получить информацию, необходимую от вашего MyCustomClass
объект.