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


ObjectStateFormatter.Deserialize Метод

Определение

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

Перегрузки

Имя Описание
Deserialize(Stream)

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

Deserialize(String)

Десериализация графа состояния объекта из сериализованной строки в кодировке Base64.

Комментарии

Это важно

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

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.

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

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

Исключения

Указан inputStreamnull.

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

Примеры

В следующем примере кода показано, как класс, производный от PageStatePersister класса, инициализирует коллекцию ViewState . В этом примере ViewState коллекция была назначена First полю Pair объекта и сериализована в файл с помощью 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)

Десериализация графа состояния объекта из сериализованной строки в кодировке Base64.

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 десериализируется в инициализированный объект.

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

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

Исключения

Указан inputStringnull или имеет 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.

Это важно

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

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