DataObject.SetData 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
将对象添加到 DataObject 中。
重载
SetData(Object) |
使用对象类型作为数据格式将指定对象添加到 DataObject。 |
SetData(String, Object) |
使用指定格式将指定对象添加到 DataObject。 |
SetData(Type, Object) |
使用指定类型作为格式将指定对象添加到 DataObject。 |
SetData(String, Boolean, Object) |
使用指定格式将指定对象添加到 DataObject 并指示这些数据是否可以转换为其他格式。 |
SetData(Object)
使用对象类型作为数据格式将指定对象添加到 DataObject。
public:
virtual void SetData(System::Object ^ data);
public virtual void SetData (object data);
public virtual void SetData (object? data);
abstract member SetData : obj -> unit
override this.SetData : obj -> unit
Public Overridable Sub SetData (data As Object)
参数
- data
- Object
要存储的数据。
实现
示例
下面的代码示例将数据存储在 中 DataObject。 首先,创建一个新的 DataObject ,并在其中存储一个组件。 然后,通过指定 类检索数据。 结果显示在文本框中。
此代码要求 textBox1
已创建 。
private:
void AddMyData3()
{
// Creates a component to store in the data object.
Component^ myComponent = gcnew Component;
// Creates a new data object.
DataObject^ myDataObject = gcnew DataObject;
// Adds the component to the DataObject.
myDataObject->SetData( myComponent );
// Prints whether data of the specified type is in the DataObject.
Type^ myType = myComponent->GetType();
if ( myDataObject->GetDataPresent( myType ) )
{
textBox1->Text = String::Concat( "Data of type ", myType->Name,
" is present in the DataObject" );
}
else
{
textBox1->Text = String::Concat( "Data of type ", myType->Name,
" is not present in the DataObject" );
}
}
private void AddMyData3() {
// Creates a component to store in the data object.
Component myComponent = new Component();
// Creates a new data object.
DataObject myDataObject = new DataObject();
// Adds the component to the DataObject.
myDataObject.SetData(myComponent);
// Prints whether data of the specified type is in the DataObject.
Type myType = myComponent.GetType();
if(myDataObject.GetDataPresent(myType))
textBox1.Text = "Data of type " + myType.GetType().Name +
" is present in the DataObject";
else
textBox1.Text = "Data of type " + myType.GetType().Name +
" is not present in the DataObject";
}
Private Sub AddMyData3()
' Creates a component to store in the data object.
Dim myComponent As New Component()
' Creates a new data object.
Dim myDataObject As New DataObject()
' Adds the component to the DataObject.
myDataObject.SetData(myComponent)
' Prints whether data of the specified type is in the DataObject.
Dim myType As Type = myComponent.GetType()
If myDataObject.GetDataPresent(myType) Then
textBox1.Text = "Data of type " & myType.GetType().Name & _
" is present in the DataObject"
Else
textBox1.Text = "Data of type " & myType.GetType().Name & _
" is not present in the DataObject"
End If
End Sub
注解
重要
使用不受信任的数据调用此方法存在安全风险。 仅使用受信任的数据调用此方法。 有关详细信息,请参阅 验证所有输入。
如果不知道目标应用程序的格式,可以使用此方法以多种格式存储数据。 使用此方法存储的数据在检索时可以转换为兼容的格式。
重SetData(Object)载以它通过调用 Object.GetType 方法确定的格式存储data
值。 如果 data
实现 ISerializable 接口,则此重载还会以 Serializable 格式存储值。
另请参阅
适用于
SetData(String, Object)
使用指定格式将指定对象添加到 DataObject。
public:
virtual void SetData(System::String ^ format, System::Object ^ data);
public virtual void SetData (string format, object data);
public virtual void SetData (string format, object? data);
abstract member SetData : string * obj -> unit
override this.SetData : string * obj -> unit
Public Overridable Sub SetData (format As String, data As Object)
参数
- format
- String
与数据关联的格式。 请参见 DataFormats 以获取预定义的格式。
- data
- Object
要存储的数据。
实现
示例
下面的代码示例将数据存储在 中 DataObject,并将其格式指定为 Unicode。
然后,通过指定文本格式检索数据,因为默认是在最终格式兼容时转换数据。 结果显示在文本框中。
此代码要求 textBox1
已创建 。
private:
void AddMyData()
{
// Creates a new data object using a string and the text format.
DataObject^ myDataObject = gcnew DataObject;
// Stores a string, specifying the Unicode format.
myDataObject->SetData( DataFormats::UnicodeText, "Text string" );
// Retrieves the data by specifying Text.
textBox1->Text = myDataObject->GetData( DataFormats::Text )->GetType()->Name;
}
private void AddMyData() {
// Creates a new data object using a string and the text format.
DataObject myDataObject = new DataObject();
// Stores a string, specifying the Unicode format.
myDataObject.SetData(DataFormats.UnicodeText, "Text string");
// Retrieves the data by specifying Text.
textBox1.Text = myDataObject.GetData(DataFormats.Text).GetType().Name;
}
Private Sub AddMyData()
' Creates a new data object using a string and the text format.
Dim myDataObject As New DataObject()
' Stores a string, specifying the Unicode format.
myDataObject.SetData(DataFormats.UnicodeText, "Text string")
' Retrieves the data by specifying Text.
textBox1.Text = myDataObject.GetData(DataFormats.Text).GetType().Name
End Sub
注解
重要
使用不受信任的数据调用此方法存在安全风险。 仅使用受信任的数据调用此方法。 有关详细信息,请参阅 验证所有输入。
如果不知道目标应用程序的格式,可以使用此方法以多种格式存储数据。
使用此方法存储的数据在检索时可以转换为兼容的格式。
另请参阅
适用于
SetData(Type, Object)
使用指定类型作为格式将指定对象添加到 DataObject。
public:
virtual void SetData(Type ^ format, System::Object ^ data);
public virtual void SetData (Type format, object data);
public virtual void SetData (Type format, object? data);
abstract member SetData : Type * obj -> unit
override this.SetData : Type * obj -> unit
Public Overridable Sub SetData (format As Type, data As Object)
参数
- data
- Object
要存储的数据。
实现
示例
下面的代码示例使用 Type 作为数据格式将数据存储在 中DataObject。 然后,通过使用 来指定数据格式,通过调用 GetDataType 来检索数据。 结果显示在文本框中。
此代码要求 textBox1
已创建 。
private:
void AddMyData2()
{
// Creates a component to store in the data object.
Component^ myComponent = gcnew Component;
// Gets the type of the component.
Type^ myType = myComponent->GetType();
// Creates a new data object.
DataObject^ myDataObject = gcnew DataObject;
// Adds the component to the DataObject.
myDataObject->SetData( myType, myComponent );
// Prints whether data of the specified type is in the DataObject.
if ( myDataObject->GetDataPresent( myType ) )
{
textBox1->Text = String::Concat( "Data of type ", myType->Name,
" is present in the DataObject" );
}
else
{
textBox1->Text = String::Concat( "Data of type ", myType->Name,
" is not present in the DataObject" );
}
}
private void AddMyData2() {
// Creates a component to store in the data object.
Component myComponent = new Component();
// Gets the type of the component.
Type myType = myComponent.GetType();
// Creates a new data object.
DataObject myDataObject = new DataObject();
// Adds the component to the DataObject.
myDataObject.SetData(myType, myComponent);
// Prints whether data of the specified type is in the DataObject.
if(myDataObject.GetDataPresent(myType))
textBox1.Text = "Data of type " + myType.GetType().Name +
" is present in the DataObject";
else
textBox1.Text = "Data of type " + myType.GetType().Name +
" is not present in the DataObject";
}
Private Sub AddMyData2()
' Creates a component to store in the data object.
Dim myComponent As New Component()
' Gets the type of the component.
Dim myType As Type = myComponent.GetType()
' Creates a new data object.
Dim myDataObject As New DataObject()
' Adds the component to the DataObject.
myDataObject.SetData(myType, myComponent)
' Prints whether data of the specified type is in the DataObject.
If myDataObject.GetDataPresent(myType) Then
textBox1.Text = "Data of type " & myType.GetType().Name & _
" is present in the DataObject"
Else
textBox1.Text = "Data of type " & myType.GetType().Name & _
" is not present in the DataObject"
End If
End Sub
注解
重要
使用不受信任的数据调用此方法存在安全风险。 仅使用受信任的数据调用此方法。 有关详细信息,请参阅 验证所有输入。
如果不知道目标应用程序的格式,可以使用此方法以多种格式存储数据。
使用此方法存储的数据在检索时可以转换为兼容的格式。
另请参阅
适用于
SetData(String, Boolean, Object)
使用指定格式将指定对象添加到 DataObject 并指示这些数据是否可以转换为其他格式。
public:
virtual void SetData(System::String ^ format, bool autoConvert, System::Object ^ data);
public virtual void SetData (string format, bool autoConvert, object data);
public virtual void SetData (string format, bool autoConvert, object? data);
abstract member SetData : string * bool * obj -> unit
override this.SetData : string * bool * obj -> unit
Public Overridable Sub SetData (format As String, autoConvert As Boolean, data As Object)
参数
- format
- String
与数据关联的格式。 请参见 DataFormats 以获取预定义的格式。
- autoConvert
- Boolean
如果允许将数据转换成另一格式,值为 true
;否则,值为 false
。
- data
- Object
要存储的数据。
实现
示例
下面的代码示例将数据存储在 中 DataObject ,并指定只能以本机格式检索数据。
首先,创建一个新的 DataObject 。 Unicode 格式的数据存储在 中 DataObject,并将 autoConvert
设置为 false
。
然后, DataObject 查询 可用数据格式的列表。 仅返回 Unicode 格式,但 Unicode 数据可以转换为文本和其他格式。
此代码要求 textBox1
已创建 。
private:
void AddMyData4()
{
// Creates a new data object, and assigns it the component.
DataObject^ myDataObject = gcnew DataObject;
// Adds data to the DataObject, and specifies no format conversion.
myDataObject->SetData( DataFormats::UnicodeText, false, "My Unicode data" );
// Gets the data formats in the DataObject.
array<String^>^ arrayOfFormats = myDataObject->GetFormats();
// Prints the results.
textBox1->Text = "The format(s) associated with the data are: \n";
for ( int i = 0; i < arrayOfFormats->Length; i++ )
{
textBox1->Text = String::Concat( textBox1->Text, arrayOfFormats[ i ], "\n" );
}
}
private void AddMyData4() {
// Creates a new data object, and assigns it the component.
DataObject myDataObject = new DataObject();
// Adds data to the DataObject, and specifies no format conversion.
myDataObject.SetData(DataFormats.UnicodeText, false, "My Unicode data");
// Gets the data formats in the DataObject.
String[] arrayOfFormats = myDataObject.GetFormats();
// Prints the results.
textBox1.Text = "The format(s) associated with the data are: " + '\n';
for(int i=0; i<arrayOfFormats.Length; i++)
textBox1.Text += arrayOfFormats[i] + '\n';
}
Private Sub AddMyData4()
' Creates a new data object, and assigns it the component.
Dim myDataObject As New DataObject()
' Adds data to the DataObject, and specifies no format conversion.
myDataObject.SetData(DataFormats.UnicodeText, False, "My Unicode data")
' Gets the data formats in the DataObject.
Dim arrayOfFormats As String() = myDataObject.GetFormats()
' Prints the results.
textBox1.Text = "The format(s) associated with the data are: " & ControlChars.Cr
Dim i As Integer
For i = 0 To arrayOfFormats.Length - 1
textBox1.Text += arrayOfFormats(i) & ControlChars.Cr
Next i
End Sub
注解
重要
使用不受信任的数据调用此方法存在安全风险。 仅使用受信任的数据调用此方法。 有关详细信息,请参阅 验证所有输入。
如果不知道目标应用程序的格式,可以使用此方法以多种格式存储数据。