IVsDataSourceSpecializer.GetAssembly Method
Resolves a provider-specific assembly string to its corresponding Assembly 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 GetAssembly ( _
source As Guid, _
assemblyString As String _
) As Assembly
Assembly GetAssembly(
Guid source,
string assemblyString
)
Assembly^ GetAssembly(
Guid source,
String^ assemblyString
)
abstract GetAssembly :
source:Guid *
assemblyString:string -> Assembly
function GetAssembly(
source : Guid,
assemblyString : String
) : Assembly
Parameters
- source
Type: System.Guid
A DDEX data source identifier.
- assemblyString
Type: System.String
A provider-specific assembly string.
Return Value
Type: System.Reflection.Assembly
An Assembly object representing the assembly resolved from the specified assembly string, for the specified DDEX data source, if found; otherwise, nulla null reference (Nothing in Visual Basic).
Exceptions
Exception | Condition |
---|---|
ArgumentNullException | The assemblyString parameter is nulla null reference (Nothing in Visual Basic). |
Remarks
A provider implements this method when there are assembly names specified as strings in formats such as a data support XML file, and these assembly names cannot be automatically resolved (or would be resolved incorrectly) by the CLR’s Load method. One use of this method would be to expand an incomplete assembly declaration. (For example, if the string is "MyAssembly" it might get expanded to "MyAssembly, Version=2.0.0.0, Culture=neutral, PublicKeyToken=1234567890ABCDEF" before the CLR resolves it.)
This method is provided to shorten a provider’s specification of type names, which can help reduce duplication of a commonly used assembly throughout the code base. The data source specialization supplied by this method further enables using common assembly strings to reference potentially different assemblies when different DDEX data sources are targeted by the client.
Examples
The following code demonstrates how to implement this method to return different assemblies 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 System.Reflection;
using Microsoft.VisualStudio.Data.Core;
using Microsoft.VisualStudio.Data.Framework;
public class MySourceSpecializer4 : DataSourceSpecializer
{
private static readonly Guid s_dataSource1 =
new Guid("EB5246D3-277C-4277-910F-111CB9EAD253");
private static readonly Guid s_dataSource2 =
new Guid("1EC8B196-7155-4d5a-BBDC-0CC47D631E52");
public override Assembly GetAssembly(Guid source, string assemblyString)
{
if (source == s_dataSource1)
{
return Assembly.Load("AssemblyForDataSource1");
}
else if (source == s_dataSource2)
{
return Assembly.Load("AssemblyForDataSource2");
}
else
{
return base.GetAssembly(source, assemblyString);
}
}
}
.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.