Как преобразовать из пользовательского типа в HttpPostedFileBase - PullRequest
0 голосов
/ 17 декабря 2018

У меня есть пользовательский объект из одного из классов в моем проекте.Так, например, объект abc типа MyCustomClass Мне нужно вызвать метод в моей программе, который был написан ранее.Этот метод принимает параметр HttpPostedFileBase и сохраняет его на сервере. Так что мой вопрос как я могу преобразовать мой object, чтобы иметь возможность передать его в HttpPostedFileBase, чтобы он мог выполнять свою работу с этого момента.

Это то, что я ищуи нашел пока: как преобразовать byte [] в HttpPostedFileBase, используя c #

Ответы [ 2 ]

0 голосов
/ 17 декабря 2018

Если ваш класс сериализуем, тогда вы можете использовать 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);
0 голосов
/ 17 декабря 2018

Если метод ожидает HttpPostedFileBase, вам нужно будет заставить ваш MyCustomClass наследоваться от HttpPostedFileBase или просто создать новый объект HttpPostedFileBase, который получит необходимую информацию от вашего MyCustomClass объекта.

...