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
Related Posts by Categories
 
 
 
0 comments:
Post a Comment