У меня есть настраиваемый объект из одного из классов моего проекта. Так, например, объект abc из типа MyCustomClass
Мне нужно вызвать в моей программе метод, который был написан ранее. Этот метод принимает параметр HttpPostedFileBase и сохраняет его на сервере.
Итак, мой вопрос, как я могу преобразовать свой object, чтобы передать его HttpPostedFileBase, чтобы он мог выполнять свою работу с этого момента.
Вот что я искал и нашел на данный момент: как преобразовать byte [] в HttpPostedFileBase с помощью C#
@Xiaosu? Передавать их по отдельности? Я не понимаю о чем ты.
Учитывая то, что вы нашли, пытались ли вы преобразовать экземпляр MyCustomClass в byte[]?





Если метод ожидает HttpPostedFileBase, вам нужно будет заставить ваш MyCustomClass унаследовать от HttpPostedFileBase или просто создать новый объект HttpPostedFileBase, который получит необходимую информацию от вашего объекта MyCustomClass.
Если ваш класс сериализуемый, вы можете использовать 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);
Можете ли вы передавать их по отдельности вместо того, чтобы смешивать их вместе?