SerializationInfo.GetValue(String, Type) Metode
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
Mengambil nilai dari penyimpanan SerializationInfo .
public:
System::Object ^ GetValue(System::String ^ name, Type ^ type);
public object GetValue(string name, Type type);
member this.GetValue : string * Type -> obj
Public Function GetValue (name As String, type As Type) As Object
Parameter
- name
- String
Nama yang terkait dengan nilai yang akan diambil.
- type
- Type
Nilai Type yang akan diambil. Jika nilai tersimpan tidak dapat dikonversi ke jenis ini, sistem akan melempar .InvalidCastException
Mengembalikan
Objek dari yang ditentukan Type yang terkait dengan name.
Pengecualian
name atau type adalah null.
Nilai yang terkait dengan name tidak dapat dikonversi ke type.
Elemen dengan nama yang ditentukan tidak ditemukan dalam instans saat ini.
Contoh
Contoh kode berikut menunjukkan penggunaan GetValue metode :
// A serializable LinkedList example. For the full LinkedList implementation
// see the Serialization sample.
[Serializable()]
class LinkedList: ISerializable {
public static void Main() {}
Node m_head = null;
Node m_tail = null;
// Serializes the object.
public void GetObjectData(SerializationInfo info, StreamingContext context){
// Stores the m_head and m_tail references in the SerializationInfo info.
info.AddValue("head", m_head, m_head.GetType());
info.AddValue("tail", m_tail, m_tail.GetType());
}
// Constructor that is called automatically during deserialization.
// Reconstructs the object from the information in SerializationInfo info
private LinkedList(SerializationInfo info, StreamingContext context)
{
Node temp = new Node(0);
// Retrieves the values of Type temp.GetType() from SerializationInfo info
m_head = (Node)info.GetValue("head", temp.GetType());
m_tail = (Node)info.GetValue("tail", temp.GetType());
}
}
' A serializable LinkedList example. For the full LinkedList implementation
' see the Serialization sample.
<Serializable()> Class LinkedList
Implements ISerializable
Public Shared Sub Main()
End Sub
Private m_head As Node = Nothing
Private m_tail As Node = Nothing
' Serializes the object.
Public Sub GetObjectData(info As SerializationInfo, _
context As StreamingContext) Implements ISerializable.GetObjectData
' Stores the m_head and m_tail references in the SerializationInfo info.
info.AddValue("head", m_head, m_head.GetType())
info.AddValue("tail", m_tail, m_tail.GetType())
End Sub
' Constructor that is called automatically during deserialization.
' Reconstructs the object from the information in SerializationInfo info.
Private Sub New(info As SerializationInfo, context As StreamingContext)
Dim temp As New Node(0)
' Retrieves the values of Type temp.GetType() from SerializationInfo info.
m_head = CType(info.GetValue("head", temp.GetType()), Node)
m_tail = CType(info.GetValue("tail", temp.GetType()), Node)
End Sub
End Class
Keterangan
Jika data yang disimpan dalam SerializationInfo jenis yang diminta (atau salah satu kelas turunannya), nilai tersebut dikembalikan secara langsung. Jika tidak, IFormatterConverter.Convert dipanggil untuk mengonversinya ke jenis yang sesuai.
Nilai yang GetValue dikembalikan oleh metode selalu dapat ditransmisikan dengan aman ke jenis yang ditentukan dalam type parameter.