IVsDataSourceSpecializer.GetType Method
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
'Declaration
Function GetType ( _
source As Guid, _
typeName As String _
) As Type
Type GetType(
Guid source,
string typeName
)
Type^ GetType(
Guid source,
String^ typeName
)
abstract GetType :
source:Guid *
typeName:string -> Type
function GetType(
source : Guid,
typeName : String
) : Type
Parameters
- source
Type: System.Guid
A DDEX data source identifier.
- typeName
Type: System.String
A 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, nulla null reference (Nothing in Visual Basic).
Exceptions
Exception | Condition |
---|---|
ArgumentNullException | The typeName parameter is nulla 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);
}
}
.NET Framework Security
- 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.