As part of a function I was writing I came up with this test to see if an assembly needed to be loaded:
if (([appdomain ]::currentdomain .getassemblies () | Where {$_ -match "System.Drawing" }) -eq $null )
{
Write-Verbose "Loading System.Drawing assembly." ;
[Void ] [System.Reflection.Assembly ]::LoadFromPartialName("System.Drawing" );
}
Richard Siddaways post
Assemblies loaded in PowerShell got me thinking in this direction. All I did was add the wrapper to test for a specific item. This could easily be modularized into a function:
function Load-Assembly
{
[CmdletBinding()]
param (
[Parameter(
Mandatory = $true ,
ValueFromPipeline = $true
)]
[ValidateNotNullOrEmpty()]
[ String ]
$AssemblyName ,
[ Switch ]
$Report = $false
)
if (([ appdomain ]:: currentdomain . getassemblies () | Where { $_ -match $AssemblyName }) -eq $null )
{
if ( $Report ) {
Write-Output "Loading $AssemblyName assembly." ;
}
[ Void ] [ System.Reflection.Assembly ]::LoadFromPartialName( $AssemblyName );
return 1
}
else
{
if ( $Report ) {
Write-Output "$AssemblyName is already loaded." ;
}
return - 1
}
}
Load-Assembly -AssemblyName System.Drawing