Поделиться через


ObjectStateFormatter.Deserialize Метод

Определение

Выполняет десериализацию графа состояния объекта из сериализованной формы.

Перегрузки

Deserialize(Stream)

Выполняет десериализацию графа состояния объекта из двоичной сериализованной формы, которая содержится в указанном объекте Stream.

Deserialize(String)

Выполняет десериализацию графа состояния объекта из его сериализованной строковой формы на основе 64-разрядной кодировки.

Комментарии

Важно!

Вызов этого метода для ненадежных данных представляет угрозу безопасности. Вызывайте этот метод только для надежных данных. Дополнительные сведения см. в разделе Проверка всех входных данных.

Deserialize(Stream)

Выполняет десериализацию графа состояния объекта из двоичной сериализованной формы, которая содержится в указанном объекте Stream.

public:
 System::Object ^ Deserialize(System::IO::Stream ^ inputStream);
public object Deserialize (System.IO.Stream inputStream);
member this.Deserialize : System.IO.Stream -> obj
Public Function Deserialize (inputStream As Stream) As Object

Параметры

inputStream
Stream

Объект Stream, который десериализуется классом ObjectStateFormatter в исходную форму object.

Возвращаемое значение

Объект, который представляет десериализованный граф состояния объекта.

Исключения

Заданный объект inputStream имеет значение null.

При десериализации объекта Stream вызывается исключение. Сообщение об исключении прикрепляется к сообщению о ArgumentException.

Примеры

В следующем примере кода показано, как класс, производный от класса , PageStatePersister инициализирует коллекцию ViewState . В этом примере ViewState коллекция была назначена полю FirstPair объекта и сериализована в файл с помощью ObjectStateFormatter класса . При вызове Load метода метод используется для десериализации Deserialize(Stream) состояния представления из файла, а свойство инициализируется ViewState . Этот пример входит в состав более крупного примера использования класса PageStatePersister.

//
// Load ViewState and ControlState.
//
public override void Load()
{
    Stream stateStream = GetSecureStream();

    // Read the state string, using the StateFormatter.
    StreamReader reader = new StreamReader(stateStream);

    IStateFormatter formatter = this.StateFormatter;
    string fileContents = reader.ReadToEnd();

    // Deserilize returns the Pair object that is serialized in
    // the Save method.
    Pair statePair = (Pair)formatter.Deserialize(fileContents);

    ViewState = statePair.First;
    ControlState = statePair.Second;
    reader.Close();
    stateStream.Close();
}
'
' Load ViewState and ControlState.
'
Public Overrides Sub Load()

    Dim stateStream As Stream
    stateStream = GetSecureStream()

    ' Read the state string, using the StateFormatter.
    Dim reader As New StreamReader(stateStream)

    Dim serializedStatePair As String
    serializedStatePair = reader.ReadToEnd
    Dim statePair As Pair

    Dim formatter As IStateFormatter
    formatter = Me.StateFormatter

    ' Deserilize returns the Pair object that is serialized in
    ' the Save method.      
    statePair = CType(formatter.Deserialize(serializedStatePair), Pair)

    ViewState = statePair.First
    ControlState = statePair.Second
    reader.Close()
    stateStream.Close()
End Sub

Комментарии

Любой граф состояния объекта, сериализованный с помощью Serialize метода , можно десериализовать Deserialize с помощью метода . Метод Deserialize(Stream) используется для восстановления графа состояния объекта, хранящегося в Stream, например FileStream.

Важно!

Вызов этого метода для ненадежных данных представляет угрозу безопасности. Вызывайте этот метод только для надежных данных. Дополнительные сведения см. в разделе Проверка всех входных данных.

Применяется к

Deserialize(String)

Выполняет десериализацию графа состояния объекта из его сериализованной строковой формы на основе 64-разрядной кодировки.

public:
 System::Object ^ Deserialize(System::String ^ inputString);
public object Deserialize (string inputString);
member this.Deserialize : string -> obj
Public Function Deserialize (inputString As String) As Object

Параметры

inputString
String

Строка, которая десериализуется в инициализированный объект с использованием класса ObjectStateFormatter.

Возвращаемое значение

Объект, который представляет десериализованный граф состояния объекта.

Исключения

Указанная строка inputString соответствует null или имеет свойство Length равное 0.

Недопустимые сериализуемые данные.

Проверка допустимости с использованием кода проверки подлинности компьютера (MAC), которая выполняется при ошибке десериализации состояния представления.

Примеры

В следующем примере кода показано, как реализовать метод, который десериализует строку в кодировке Base64 и возвращает ICollection коллекцию параметров свойств. В этом примере кода используются параметры свойств, сериализованные с ObjectStateFormatter помощью класса , как показано в методе Serialize(Object) .

private ICollection LoadControlProperties (string serializedProperties) {

    ICollection controlProperties = null;

    // Create an ObjectStateFormatter to deserialize the properties.
    ObjectStateFormatter formatter = new ObjectStateFormatter();

    // Call the Deserialize method.
    controlProperties = (ArrayList) formatter.Deserialize(serializedProperties);

    return controlProperties;
}
Private Function LoadControlProperties(serializedProperties As String) As ICollection
   
   Dim controlProperties As ICollection = Nothing
   
   ' Create an ObjectStateFormatter to deserialize the properties.
   Dim formatter As New ObjectStateFormatter()
   
   ' Call the Deserialize method.
   controlProperties = CType(formatter.Deserialize(serializedProperties), ArrayList)
   
   Return controlProperties
End Function 'LoadControlProperties

Комментарии

Любой граф состояния объекта, сериализованный с помощью Serialize метода , можно десериализовать Deserialize с помощью метода . Метод Deserialize(String) используется для восстановления графа состояния объекта, хранящегося в строковой форме в кодировке Base64.

Важно!

Вызов этого метода для ненадежных данных представляет угрозу безопасности. Вызывайте этот метод только для надежных данных. Дополнительные сведения см. в разделе Проверка всех входных данных.

Применяется к