Metodo Conversion.CTypeDynamic (Object, Type)

 

Data di pubblicazione: ottobre 2016

Converte un oggetto nel tipo specificato.

Spazio dei nomi:   Microsoft.VisualBasic
Assembly:  Microsoft.VisualBasic (in Microsoft.VisualBasic.dll)

public static object CTypeDynamic(
	object Expression,
	Type TargetType
)

Parametri

Expression
Type: System.Object

Oggetto da convertire.

TargetType
Type: System.Type

Il tipo nel quale convertire l'oggetto.

Valore restituito

Type: System.Object

Oggetto il cui tipo in fase di esecuzione è il tipo di destinazione richiesto.

Il CTypeDynamic metodo converte l'oggetto passato come il Expression per il tipo specificato dal parametro di TargetType parametro. Se l'oggetto è un oggetto dinamico, il CTypeDynamic metodo si applica le conversioni dinamiche disponibili.

Il CTypeDynamic metodo applica le conversioni dinamiche in conformità con la semantica di conversione definita dall'oggetto stesso. Se un oggetto dinamico eredita da DynamicObject, CTypeDynamic metodo innanzitutto tenta di eseguire la conversione utilizzando una conversione definita dall'utente, statica. Se la conversione definita dall'utente, statica non riesce, il CTypeDynamic metodo tenta di eseguire la conversione utilizzando le conversioni dinamiche. Se un oggetto dinamico implementa IDynamicMetaObjectProvider, CTypeDynamic metodo offre la precedenza alle conversioni dinamiche rispetto alle conversioni definite dall'utente, statiche.

Nell'esempio seguente viene utilizzata la CTypeDynamic metodo per convertire un oggetto dinamico in una stringa tramite la conversione definita dall'oggetto dinamico.

Imports System.Dynamic

Module Module1
    Sub Main()
        Dim dyn As Object = New SampleDynamicObject
        Dim sampleString = CTypeDynamic(dyn, GetType(String))
        Console.WriteLine(sampleString)
    End Sub
End Module

Class SampleDynamicObject
    Inherits DynamicObject

    Public Overrides Function TryConvert(ByVal binder As ConvertBinder,
                                         ByRef result As Object) As Boolean

        If binder.Type = GetType(String) Then
            result = "Sample String"
            Return True
        End If

        Return False
    End Function
End Class

.NET Framework
Disponibile da 4.0
Silverlight
Disponibile da 4.0
Torna all'inizio
Mostra: