Resolves a provider-specific type name to its corresponding Type representation, for a specific DDEX data source.
Namespace: Microsoft.VisualStudio.Data.Core
Assembly: Microsoft.VisualStudio.Data.Core (in Microsoft.VisualStudio.Data.Core.dll)
Syntax
'宣言
Function GetType ( _
source As Guid, _
typeName As String _
) As Type
'使用
Dim instance As IVsDataSourceSpecializer
Dim source As Guid
Dim typeName As String
Dim returnValue As Type
returnValue = instance.GetType(source, _
typeName)
Type GetType(
Guid source,
string typeName
)
Type^ GetType(
Guid source,
String^ typeName
)
function GetType(
source : Guid,
typeName : String
) : Type
Parameters
source
Type: System.GuidA DDEX data source identifier.
typeName
Type: System.StringA provider-specific type name.
Return Value
Type: System.Type
An Type object representing the type resolved from the specified type name, for the specified DDEX data source, if found; otherwise, a null reference (Nothing in Visual Basic).
Exceptions
| Exception | Condition |
|---|---|
| ArgumentNullException | The typeName parameter is a null reference (Nothing in Visual Basic). |
Remarks
A provider implements this method when there are type names specified as strings in formats such as a data support XML file, and these type names cannot be automatically resolved (or would be resolved incorrectly) by the CLR’s GetType method. One use of this method would be to expand an unspecified namespace. (For example, if the string is "MyType" it might get expanded to "Company.Product.MyType" before the CLR resolves it.)
This method is provided to shorten a provider’s specification of type names, which can help reduce duplication of items, like a common namespace, throughout the code base. The data source specialization supplied by this method further enables using common type names to reference potentially different types when different DDEX data sources are targeted by the client.
Examples
The following code demonstrates implementing this method to prepend different namespaces to all type names, depending on the DDEX data source. The example inherits from the framework DataSourceSpecializer class, which provides a default implementation of the other methods on the interface.
using System;
using Microsoft.VisualStudio.Data.Core;
using Microsoft.VisualStudio.Data.Framework;
public class MySourceSpecializer5 : DataSourceSpecializer
{
private static readonly Guid s_dataSource1 =
new Guid("EB5246D3-277C-4277-910F-111CB9EAD253");
public override Type GetType(Guid source, string typeName)
{
if (source == s_dataSource1)
{
typeName = "Company.DdexProvider.Source1." + typeName;
}
else
{
typeName = "Company.DdexProvider." + typeName;
}
return GetType().Assembly.GetType(typeName);
}
}
Permissions
- Full trust for the immediate caller. This member cannot be used by partially trusted code. For more information, see Using Libraries from Partially Trusted Code.
See Also
Reference
IVsDataSourceSpecializer Interface