StreamingContext.Context Właściwość
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Pobiera kontekst określony w ramach dodatkowego kontekstu.
public:
property System::Object ^ Context { System::Object ^ get(); };
public object? Context { get; }
public object Context { get; }
member this.Context : obj
Public ReadOnly Property Context As Object
Wartość właściwości
Kontekst określony w ramach dodatkowego kontekstu.
Przykłady
Poniższy przykład tworzy wystąpienie StreamingContext klasy przy użyciu parametrów state i additional . Kod pokazuje również deserializacji obiektu i pobierania wartości Context właściwości.
using System;
using System.Text;
using System.Runtime.Serialization.Formatters.Binary;
using System.Runtime.Serialization;
using System.IO;
namespace StreamingContextExample
{
class Program
{
static void Main(string[] args)
{
try
{
SerializeAndDeserialize();
}
catch (System.Exception exc)
{
Console.WriteLine(exc.Message);
}
finally
{
Console.WriteLine("Press <Enter> to exit....");
Console.ReadLine();
}
}
static void SerializeAndDeserialize()
{
object myObject = DateTime.Now;
// Create a StreamingContext that includes a DateTime.
StreamingContext sc = new StreamingContext(
StreamingContextStates.CrossProcess, myObject);
BinaryFormatter bf = new BinaryFormatter(null, sc);
MemoryStream ms = new MemoryStream(new byte[2048]);
bf.Serialize(ms, new MyClass());
ms.Seek(0, SeekOrigin.Begin);
MyClass f = (MyClass)bf.Deserialize(ms);
Console.WriteLine("\t MinValue: {0} \n\t MaxValue: {1}",
f.MinValue , f.MaxValue);
Console.WriteLine("StreamingContext.State: {0}",
sc.State);
DateTime myDateTime = (DateTime)sc.Context;
Console.WriteLine("StreamingContext.Context: {0}",
myDateTime.ToLongTimeString());
}
}
[Serializable]
class MyClass : ISerializable
{
private int minValue_value;
private int maxValue_value;
public MyClass()
{
minValue_value = int.MinValue;
maxValue_value = int.MaxValue;
}
public int MinValue
{
get { return minValue_value; }
set { minValue_value = value;}
}
public int MaxValue
{
get { return maxValue_value; }
set { maxValue_value = value; }
}
void ISerializable.GetObjectData(SerializationInfo si, StreamingContext context)
{
si.AddValue("minValue", minValue_value);
si.AddValue("maxValue", maxValue_value);
}
protected MyClass(SerializationInfo si, StreamingContext context)
{
minValue_value = (int)si.GetValue("minValue", typeof(int));
maxValue_value = (int)si.GetValue("maxValue", typeof(int));
}
}
}
Imports System.Text
Imports System.Runtime.Serialization.Formatters.Binary
Imports System.Runtime.Serialization
Imports System.IO
Imports System.Security.Permissions
Class Program
Shared Sub Main(ByVal args() As String)
Try
SerializeAndDeserialize()
Catch exc As System.Exception
Console.WriteLine(exc.Message)
Finally
Console.WriteLine("Press <Enter> to exit....")
Console.ReadLine()
End Try
End Sub
Shared Sub SerializeAndDeserialize()
Dim myObject As Object = DateTime.Now
' Create a StreamingContext that includes a
' a DateTime.
Dim sc As New StreamingContext(StreamingContextStates.CrossProcess, myObject)
Dim bf As New BinaryFormatter(Nothing, sc)
Dim ms As New MemoryStream(New Byte(2047) {})
bf.Serialize(ms, New [MyClass]())
ms.Seek(0, SeekOrigin.Begin)
Dim f As [MyClass] = CType(bf.Deserialize(ms), [MyClass])
Console.WriteLine(vbTab + " MinValue: {0} " + vbLf + vbTab + " MaxValue: {1}", f.MinValue, f.MaxValue)
Console.WriteLine("StreamingContext.State: {0}", sc.State)
Dim myDateTime As DateTime = CType(sc.Context, DateTime)
Console.WriteLine("StreamingContext.Context: {0}", myDateTime.ToLongTimeString())
End Sub
End Class
<Serializable(), SecurityPermission(SecurityAction.Demand, SerializationFormatter := True)> _
Class [MyClass]
Implements ISerializable
Private minValue_value As Integer
Private maxValue_value As Integer
Public Sub New()
minValue_value = Integer.MinValue
maxValue_value = Integer.MaxValue
End Sub
Public Property MinValue() As Integer
Get
Return minValue_value
End Get
Set
minValue_value = value
End Set
End Property
Public Property MaxValue() As Integer
Get
Return maxValue_value
End Get
Set
maxValue_value = value
End Set
End Property
Sub GetObjectData(ByVal si As SerializationInfo, ByVal context As StreamingContext) Implements ISerializable.GetObjectData
si.AddValue("minValue", minValue_value)
si.AddValue("maxValue", maxValue_value)
End Sub
Protected Sub New(ByVal si As SerializationInfo, ByVal context As StreamingContext)
minValue_value = Fix(si.GetValue("minValue", GetType(Integer)))
maxValue_value = Fix(si.GetValue("maxValue", GetType(Integer)))
End Sub
End Class
Uwagi
Może to być null.