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.
Важно!
Вызов этого метода для ненадежных данных представляет угрозу безопасности. Вызывайте этот метод только для надежных данных. Дополнительные сведения см. в разделе Проверка всех входных данных.