Add-Type
PowerShell 세션에 Microsoft .NET 클래스를 추가합니다.
구문
Add-Type
[-CodeDomProvider <CodeDomProvider>]
[-CompilerParameters <CompilerParameters>]
[-TypeDefinition] <String>
[-Language <Language>]
[-ReferencedAssemblies <String[]>]
[-OutputAssembly <String>]
[-OutputType <OutputAssemblyType>]
[-PassThru]
[-IgnoreWarnings]
[<CommonParameters>]
Add-Type
[-CodeDomProvider <CodeDomProvider>]
[-CompilerParameters <CompilerParameters>]
[-Name] <String>
[-MemberDefinition] <String[]>
[-Namespace <String>]
[-UsingNamespace <String[]>]
[-Language <Language>]
[-ReferencedAssemblies <String[]>]
[-OutputAssembly <String>]
[-OutputType <OutputAssemblyType>]
[-PassThru]
[-IgnoreWarnings]
[<CommonParameters>]
Add-Type
[-CompilerParameters <CompilerParameters>]
[-Path] <String[]>
[-ReferencedAssemblies <String[]>]
[-OutputAssembly <String>]
[-OutputType <OutputAssemblyType>]
[-PassThru]
[-IgnoreWarnings]
[<CommonParameters>]
Add-Type
[-CompilerParameters <CompilerParameters>]
-LiteralPath <String[]>
[-ReferencedAssemblies <String[]>]
[-OutputAssembly <String>]
[-OutputType <OutputAssemblyType>]
[-PassThru]
[-IgnoreWarnings]
[<CommonParameters>]
Add-Type
-AssemblyName <String[]>
[-PassThru]
[-IgnoreWarnings]
[<CommonParameters>]
Description
Add-Type
cmdlet을 사용하면 PowerShell 세션에서 Microsoft .NET Framework 클래스를 정의할 수 있습니다.
그런 다음 New-Object
cmdlet을 사용하여 개체를 인스턴스화하고 .NET Framework 개체를 사용하는 것처럼 개체를 사용할 수 있습니다. PowerShell 프로필에 Add-Type
명령을 추가하면 모든 PowerShell 세션에서 클래스를 사용할 수 있습니다.
기존 어셈블리 또는 소스 코드 파일을 지정하여 형식을 지정하거나 소스 코드를 인라인으로 지정하거나 변수에 저장할 수 있습니다. 메서드만 지정하고 클래스를 정의하고 생성하는 Add-Type
수도 있습니다. Windows에서는 이 기능을 사용하여 PowerShell에서 관리되지 않는 함수에 대한 플랫폼 호출(P/Invoke) 호출을 수행할 수 있습니다. 소스 코드를 지정하는 경우 Add-Type
지정된 소스 코드를 컴파일하고 새 .NET Framework 형식을 포함하는 메모리 내 어셈블리를 생성합니다.
Add-Type
매개 변수를 사용하여 대체 언어 및 컴파일러를 지정할 수 있습니다. C#은 기본값, 컴파일러 옵션, 어셈블리 종속성, 클래스 네임스페이스, 형식 이름 및 결과 어셈블리입니다.
예제
예제 1: 세션에 .NET 형식 추가
다음은 변수에 저장된 소스 코드를 지정하여 BasicTest 클래스를 세션에 추가하는 예제입니다. BasicTest 클래스는 정수를 추가하고, 개체를 만들고, 정수를 곱하는 데 사용됩니다.
$Source = @"
public class BasicTest
{
public static int Add(int a, int b)
{
return (a + b);
}
public int Multiply(int a, int b)
{
return (a * b);
}
}
"@
Add-Type -TypeDefinition $Source
[BasicTest]::Add(4, 3)
$BasicTestObject = New-Object BasicTest
$BasicTestObject.Multiply(5, 2)
$Source
변수는 클래스의 소스 코드를 저장합니다. 형식에는 Add
라는 정적 메서드와 Multiply
호출된 비정적 메서드가 있습니다.
Add-Type
cmdlet은 세션에 클래스를 추가합니다. 인라인 소스 코드를 사용하므로 명령은 TypeDefinition 매개 변수를 사용하여 $Source
변수에 코드를 지정합니다.
BasicTest 클래스의 Add
정적 메서드는 double-colon 문자(::
)를 사용하여 클래스의 정적 멤버를 지정합니다. 정수가 추가되고 합계가 표시됩니다.
New-Object
cmdlet은 BasicTest 클래스의 인스턴스를 인스턴스화합니다. 새 개체를 $BasicTestObject
변수에 저장합니다.
$BasicTestObject
Multiply
메서드를 사용합니다. 정수가 곱하고 제품이 표시됩니다.
예제 2: 추가된 형식 검사
이 예제에서는 Get-Member
cmdlet을 사용하여 예제 1에서 만든 Add-Type
및 New-Object
cmdlet이개체를 검사합니다.
[BasicTest] | Get-Member
TypeName: System.RuntimeType
Name MemberType Definition
---- ---------- ----------
AsType Method type AsType()
Clone Method System.Object Clone(), System.Object ICloneable.Clone()
Equals Method bool Equals(System.Object obj), bool Equals(type o)
FindInterfaces Method type[] FindInterfaces(System.Reflection.TypeFilter filter...
...
[BasicTest] | Get-Member -Static
TypeName: BasicTest
Name MemberType Definition
---- ---------- ----------
Add Method static int Add(int a, int b)
Equals Method static bool Equals(System.Object objA, System.Object objB)
new Method BasicTest new()
ReferenceEquals Method static bool ReferenceEquals(System.Object objA, System.Object objB)
$BasicTestObject | Get-Member
TypeName: BasicTest
Name MemberType Definition
---- ---------- ----------
Equals Method bool Equals(System.Object obj)
GetHashCode Method int GetHashCode()
GetType Method type GetType()
Multiply Method int Multiply(int a, int b)
ToString Method string ToString()
Get-Member
cmdlet은 세션에 추가된 BasicTest 클래스의 형식과 멤버를 Add-Type
.
Get-Member
명령은 System.Object 클래스에서 파생된 System.RuntimeType 개체임을 표시합니다.
Get-Member
Static 매개 변수는 BasicTest 클래스의 정적 속성과 메서드를 가져옵니다. 출력은 Add
메서드가 포함되어 있음을 보여줍니다.
Get-Member
cmdlet은 $BasicTestObject
변수에 저장된 개체의 멤버를 가져옵니다.
$BasicTestObject
BasicTest 클래스와 함께 New-Object
cmdlet을 사용하여 만들었습니다. 출력은 $BasicTestObject
변수의 값이 BasicTest 클래스의 인스턴스이며 Multiply
멤버를 포함하고 있음을 보여줍니다.
예제 3: 어셈블리에서 형식 추가
다음은 Accessibility.dll
어셈블리의 클래스를 현재 세션에 추가하는 예제입니다.
$AccType = Add-Type -AssemblyName "accessib*" -PassThru
$AccType
변수는 Add-Type
cmdlet을 사용하여 만든 개체를 저장합니다.
Add-Type
AssemblyName 매개 변수를 사용하여 어셈블리의 이름을 지정합니다. 별표(*
) 와일드카드 문자를 사용하면 이름이나 철자를 잘 모르는 경우에도 올바른 어셈블리를 가져올 수 있습니다.
PassThru 매개 변수는 세션에 추가되는 클래스를 나타내는 개체를 생성합니다.
예제 4: 네이티브 Windows API 호출
이 예제에서는 PowerShell에서 네이티브 Windows API를 호출하는 방법을 보여 줍니다.
Add-Type
플랫폼 호출(P/Invoke) 메커니즘을 사용하여 PowerShell에서 User32.dll
함수를 호출합니다. 이 예제는 Windows 운영 체제를 실행하는 컴퓨터에서만 작동합니다.
$Signature = @"
[DllImport("user32.dll")]public static extern bool ShowWindowAsync(IntPtr hWnd, int nCmdShow);
"@
$addTypeSplat = @{
MemberDefinition = $Signature
Name = "Win32ShowWindowAsync"
Namespace = 'Win32Functions'
PassThru = $true
}
$ShowWindowAsync = Add-Type @addTypeSplat
# Minimize the PowerShell console
$ShowWindowAsync::ShowWindowAsync((Get-Process -Id $PID).MainWindowHandle, 2)
# Restore the PowerShell console
$ShowWindowAsync::ShowWindowAsync((Get-Process -Id $PID).MainWindowHandle, 4)
$Signature
변수는 ShowWindowAsync
함수의 C# 서명을 저장합니다. 결과 메서드가 PowerShell 세션에 표시되도록 하기 위해 public
키워드가 표준 서명에 추가되었습니다. 자세한 내용은 ShowWindowAsync 함수를 참조하세요.
$ShowWindowAsync
변수는 Add-Type
PassThru 매개 변수로 만든 개체를 저장합니다.
Add-Type
cmdlet은 ShowWindowAsync
함수를 PowerShell 세션에 정적 메서드로 추가합니다. 이 명령은 MemberDefinition 매개 변수를 사용하여 $Signature
변수에 저장된 메서드 정의를 지정합니다. 이 명령은 Name 및 네임스페이스 매개 변수를 사용하여 클래스의 이름과 네임스페이스를 지정합니다.
PassThru 매개 변수는 형식을 나타내는 개체를 생성합니다.
새 ShowWindowAsync
정적 메서드는 PowerShell 콘솔을 최소화하고 복원하기 위해 명령에 사용됩니다. 이 메서드는 창 핸들과 창 표시 방법을 지정하는 정수라는 두 개의 매개 변수를 사용합니다.
PowerShell 콘솔을 최소화하기 위해 ShowWindowAsync
$PID
자동 변수와 함께 Get-Process
cmdlet을 사용하여 현재 PowerShell 세션을 호스팅하는 프로세스를 가져옵니다. 그런 다음 현재 프로세스의 MainWindowHandle 속성과 SW_MINIMIZE
값을 나타내는 2
값을 사용합니다.
창을 복원하기 위해 ShowWindowAsync
SW_RESTORE
값을 나타내는 창 위치에 4
값을 사용합니다.
창을 최대화하려면 SW_MAXIMIZE
나타내는 3
값을 사용합니다.
예제 5: Visual Basic 파일에서 형식 추가
이 예제에서는 Add-Type
cmdlet을 사용하여 Hello.vb
파일에 정의된 VBFromFile 클래스를 현재 세션에 추가합니다.
Hello.vb
파일의 텍스트는 명령 출력에 표시됩니다.
Add-Type -Path "C:\PS-Test\Hello.vb"
[VBFromFile]::SayHello(", World")
# From Hello.vb
Public Class VBFromFile
Public Shared Function SayHello(sourceName As String) As String
Dim myValue As String = "Hello"
return myValue + sourceName
End Function
End Class
Hello, World
Add-Type
Path 매개 변수를 사용하여 원본 파일, Hello.vb
지정하고 파일에 정의된 형식을 추가합니다.
SayHello
함수는 VBFromFile 클래스의 정적 메서드로 호출됩니다.
예제 6: JScript.NET 사용하여 클래스 추가
이 예제에서는 JScript.NET 사용하여 PowerShell 세션에서 FRectangle 새 클래스를 만듭니다.
Add-Type @'
class FRectangle {
var Length : double;
var Height : double;
function Perimeter() : double {
return (Length + Height) * 2; }
function Area() : double {
return Length * Height; } }
'@ -Language JScript
$rect = [FRectangle]::new()
$rect
Length Height
------ ------
0 0
예제 7: F# 컴파일러 추가
이 예제에서는 Add-Type
cmdlet을 사용하여 PowerShell 세션에 F# 코드 컴파일러를 추가하는 방법을 보여 줍니다. PowerShell에서 이 예제를 실행하려면 F# 언어로 설치된 FSharp.Compiler.CodeDom.dll
있어야 합니다.
Add-Type -Path "FSharp.Compiler.CodeDom.dll"
$Provider = New-Object Microsoft.FSharp.Compiler.CodeDom.FSharpCodeProvider
$FSharpCode = @"
let rec loop n =if n <= 0 then () else beginprint_endline (string_of_int n);loop (n-1)end
"@
$FSharpType = Add-Type -TypeDefinition $FSharpCode -CodeDomProvider $Provider -PassThru |
Where-Object { $_.IsPublic }
$FSharpType::loop(4)
4
3
2
1
Add-Type
Path 매개 변수를 사용하여 어셈블리를 지정하고 어셈블리의 형식을 가져옵니다.
New-Object
F# 코드 공급자의 인스턴스를 만들고 결과를 $Provider
변수에 저장합니다.
$FSharpCode
변수는 루프 메서드를 정의하는 F# 코드를 저장합니다.
$FSharpType
변수는 $FSharpCode
정의된 공용 형식을 저장하는 Add-Type
cmdlet의 결과를 저장합니다.
TypeDefinition 매개 변수는 형식을 정의하는 소스 코드를 지정합니다.
CodeDomProvider 매개 변수는 소스 코드 컴파일러를 지정합니다.
PassThru 매개 변수는 형식을 나타내는 런타임 개체를 반환하도록 Add-Type
지시합니다.
개체는 파이프라인 아래로 전송되어 공용 형식만 반환하는 Where-Object
cmdlet으로 전송됩니다.
Where-Object
cmdlet은 F# 공급자가 결과 공용 형식을 지원하기 위해 공용이 아닌 형식을 생성하기 때문에 사용됩니다.
루프 메서드는 $FSharpType
변수에 저장된 형식의 정적 메서드로 호출됩니다.
매개 변수
-AssemblyName
형식을 포함하는 어셈블리의 이름을 지정합니다.
Add-Type
지정된 어셈블리에서 형식을 가져옵니다. 이 매개 변수는 어셈블리 이름을 기반으로 형식을 만들 때 필요합니다.
어셈블리의 전체 또는 단순 이름(부분 이름이라고도 함)을 입력합니다. 와일드카드 문자는 어셈블리 이름에 허용됩니다. 단순 또는 부분 이름을 입력하면 Add-Type
전체 이름으로 확인한 다음 전체 이름을 사용하여 어셈블리를 로드합니다.
경로 또는 LiteralPath 매개 변수를 사용하면 로드하려는 어셈블리를 로드할 수 있습니다.
AssemblyName 매개 변수를 사용하는 경우 PowerShell은 표준 .NET 어셈블리 확인 프로세스를 사용하여 .NET에 어셈블리 이름을 확인하도록 요청합니다. .NET은 애플리케이션 폴더를 먼저 검색하므로 Add-Type
현재 폴더의 버전 대신 $PSHOME
어셈블리를 로드할 수 있습니다. 자세한 내용은 어셈블리 위치참조하세요.
.NET에서 이름을 확인하지 못하면 PowerShell은 현재 위치를 찾아 어셈블리를 찾습니다. AssemblyName 매개 변수에서 와일드카드를 사용하면 .NET 어셈블리 확인 프로세스가 실패하여 PowerShell이 현재 위치를 확인합니다.
형식: | String[] |
별칭: | AN |
Position: | Named |
Default value: | None |
필수: | True |
파이프라인 입력 허용: | False |
와일드카드 문자 허용: | True |
-CodeDomProvider
코드 생성기 또는 컴파일러를 지정합니다.
Add-Type
지정된 컴파일러를 사용하여 소스 코드를 컴파일합니다. 기본값은 C# 컴파일러입니다.
Language 매개 변수를 사용하여 지정할 수 없는 언어를 사용하는 경우 이 매개 변수를 사용합니다. 지정한 CodeDomProvider 소스 코드에서 어셈블리를 생성할 수 있어야 합니다.
형식: | CodeDomProvider |
별칭: | Provider |
Position: | Named |
Default value: | C# compiler |
필수: | False |
파이프라인 입력 허용: | False |
와일드카드 문자 허용: | False |
-CompilerParameters
소스 코드 컴파일러에 대한 옵션을 지정합니다. 이러한 옵션은 수정 없이 컴파일러로 전송됩니다.
이 매개 변수를 사용하면 컴파일러가 실행 파일을 생성하거나, 리소스를 포함하거나, /unsafe
옵션과 같은 명령줄 옵션을 설정하도록 지시할 수 있습니다. 이 매개 변수는 System.CodeDom.Compiler.CompilerParameters CompilerParameters 클래스를 구현합니다.
동일한 명령에서 CompilerParameters 및 referencedAssemblies 매개 변수를 사용할 수 없습니다.
형식: | CompilerParameters |
별칭: | CP |
Position: | Named |
Default value: | None |
필수: | False |
파이프라인 입력 허용: | False |
와일드카드 문자 허용: | False |
-IgnoreWarnings
컴파일러 경고를 무시합니다. 이 매개 변수를 사용하여 Add-Type
컴파일러 경고를 오류로 처리하지 못하도록 합니다.
형식: | SwitchParameter |
Position: | Named |
Default value: | False |
필수: | False |
파이프라인 입력 허용: | False |
와일드카드 문자 허용: | False |
-Language
소스 코드에 사용되는 언어를 지정합니다.
Add-Type
cmdlet은 이 매개 변수의 값을 사용하여 적절한 CodeDomProvider선택합니다. CSharp가 기본값입니다. 이 매개 변수에 허용되는 값은 다음과 같습니다.
CSharp
CSharpVersion2
CSharpVersion3
JScript
VisualBasic
형식: | Language |
허용되는 값: | CSharp, CSharpVersion2, CSharpVersion3, JScript, VisualBasic |
Position: | Named |
Default value: | CSharp |
필수: | False |
파이프라인 입력 허용: | False |
와일드카드 문자 허용: | False |
-LiteralPath
형식을 포함하는 소스 코드 파일 또는 어셈블리 DLL 파일의 경로를 지정합니다. Path달리 LiteralPath 매개 변수의 값은 입력된 대로 정확하게 사용됩니다. 와일드카드로 해석되는 문자는 없습니다. 경로에 이스케이프 문자가 포함된 경우 작은따옴표로 묶습니다. 작은따옴표는 PowerShell에 문자를 이스케이프 시퀀스로 해석하지 않도록 지시합니다.
경로 또는 LiteralPath 매개 변수를 사용하면 로드하려는 어셈블리를 로드할 수 있습니다.
형식: | String[] |
별칭: | PSPath |
Position: | Named |
Default value: | None |
필수: | True |
파이프라인 입력 허용: | False |
와일드카드 문자 허용: | False |
-MemberDefinition
클래스에 대한 새 속성 또는 메서드를 지정합니다.
Add-Type
속성 또는 메서드를 지원하는 데 필요한 템플릿 코드를 생성합니다.
Windows에서는 이 기능을 사용하여 PowerShell에서 관리되지 않는 함수에 대한 플랫폼 호출(P/Invoke) 호출을 수행할 수 있습니다.
형식: | String[] |
Position: | 1 |
Default value: | None |
필수: | True |
파이프라인 입력 허용: | False |
와일드카드 문자 허용: | False |
-Name
만들 클래스의 이름을 지정합니다. 이 매개 변수는 멤버 정의에서 형식을 생성할 때 필요합니다.
형식 이름 및 네임스페이스는 세션 내에서 고유해야 합니다. 형식을 언로드하거나 변경할 수 없습니다. 형식의 코드를 변경하려면 이름을 변경하거나 새 PowerShell 세션을 시작해야 합니다. 그렇지 않으면 명령이 실패합니다.
형식: | String |
Position: | 0 |
Default value: | None |
필수: | True |
파이프라인 입력 허용: | False |
와일드카드 문자 허용: | False |
-Namespace
기본적으로 이 명령은 microsoft.PowerShell.Commands.AddType.AutoGeneratedTypes 네임스페이스에 형식을 만듭니다. 이 매개 변수를 사용하면 지정된 네임스페이스에 형식이 만들어집니다. 값이 빈 문자열이면 형식이 전역 네임스페이스에 만들어집니다.
형식: | String |
별칭: | NS |
Position: | Named |
Default value: | None |
필수: | False |
파이프라인 입력 허용: | False |
와일드카드 문자 허용: | False |
-OutputAssembly
위치에 지정된 이름을 사용하여 어셈블리에 대한 DLL 파일을 생성합니다. 선택적 경로 및 파일 이름을 입력합니다. 와일드카드 문자가 허용됩니다. 기본적으로 Add-Type
메모리에만 어셈블리를 생성합니다. 어셈블리를 파일에 출력하는 경우 새로 만든 어셈블리에서 형식을 반환하려면 PassThru 매개 변수를 포함해야 합니다.
형식: | String |
별칭: | OA |
Position: | Named |
Default value: | None |
필수: | False |
파이프라인 입력 허용: | False |
와일드카드 문자 허용: | True |
-OutputType
출력 어셈블리의 출력 형식을 지정합니다. 기본적으로 출력 형식은 지정되지 않습니다. 이 매개 변수는 명령에서 출력 어셈블리가 지정된 경우에만 유효합니다. 값에 대한 자세한 내용은 OutputAssemblyType 열거형참조하세요.
이 매개 변수에 허용되는 값은 다음과 같습니다.
ConsoleApplication
Library
WindowsApplication
형식: | OutputAssemblyType |
별칭: | OT |
허용되는 값: | ConsoleApplication, Library, WindowsApplication |
Position: | Named |
Default value: | None |
필수: | False |
파이프라인 입력 허용: | False |
와일드카드 문자 허용: | False |
-PassThru
추가된 형식을 나타내는 System.Runtime 개체를 반환합니다. 기본적으로 이 cmdlet은 출력을 생성하지 않습니다. OutputAssembly 사용하여 DLL 파일을 만들고 새로 만든 어셈블리에서 형식을 반환하려는 경우 이 매개 변수를 사용합니다.
형식: | SwitchParameter |
Position: | Named |
Default value: | False |
필수: | False |
파이프라인 입력 허용: | False |
와일드카드 문자 허용: | False |
-Path
형식을 포함하는 소스 코드 파일 또는 어셈블리 DLL 파일의 경로를 지정합니다.
소스 코드 파일을 제출하는 경우 Add-Type
파일의 코드를 컴파일하고 형식의 메모리 내 어셈블리를 만듭니다.
경로 값에 지정된 파일 확장명은 Add-Type
사용하는 컴파일러를 결정합니다.
어셈블리 파일을 제출하는 경우 Add-Type
어셈블리에서 형식을 가져옵니다. 메모리 내 어셈블리 또는 전역 어셈블리 캐시를 지정하려면 AssemblyName 매개 변수를 사용합니다.
형식: | String[] |
Position: | 0 |
Default value: | None |
필수: | True |
파이프라인 입력 허용: | False |
와일드카드 문자 허용: | False |
-ReferencedAssemblies
형식이 의존하는 어셈블리를 지정합니다. 기본적으로 Add-Type
참조는 System.dll
System.Management.Automation.dll
. 이 매개 변수를 사용하여 지정하는 어셈블리는 기본 어셈블리 외에도 참조됩니다.
동일한 명령에서 CompilerParameters 및 referencedAssemblies 매개 변수를 사용할 수 없습니다.
형식: | String[] |
별칭: | RA |
Position: | Named |
Default value: | None |
필수: | False |
파이프라인 입력 허용: | False |
와일드카드 문자 허용: | False |
-TypeDefinition
형식 정의를 포함하는 소스 코드를 지정합니다. 문자열 또는 여기 문자열에 소스 코드를 입력하거나 소스 코드가 포함된 변수를 입력합니다. 여기 문자열에 대한 자세한 내용은 about_Quoting_Rules참조하세요.
형식 정의에 네임스페이스 선언을 포함합니다. 네임스페이스 선언을 생략하면 형식의 이름이 다른 형식이나 다른 형식의 바로 가기와 같아 의도하지 않은 덮어쓰기가 발생할 수 있습니다. 예를 들어 예외형식을 정의하는 경우 예외 사용하는 스크립트는 System.Exception 대한 바로 가기로 실패합니다.
형식: | String |
Position: | 0 |
Default value: | None |
필수: | True |
파이프라인 입력 허용: | False |
와일드카드 문자 허용: | False |
-UsingNamespace
클래스에 필요한 다른 네임스페이스를 지정합니다. C# 키워드와 비슷하게 Using
.
기본적으로 Add-Type
시스템 네임스페이스를 참조합니다.
MemberDefinition 매개 변수를 사용하는 경우 Add-Type
기본적으로 System.Runtime.InteropServices 네임스페이스를 참조합니다.
UsingNamespace 매개 변수를 사용하여 추가하는 네임스페이스는 기본 네임스페이스 외에도 참조됩니다.
형식: | String[] |
별칭: | Using |
Position: | Named |
Default value: | System namespace |
필수: | False |
파이프라인 입력 허용: | False |
와일드카드 문자 허용: | False |
입력
None
개체를 이 cmdlet으로 파이프할 수 없습니다.
출력
None
기본적으로 이 cmdlet은 출력을 반환하지 않습니다.
PassThru 매개 변수를 사용하는 경우 이 cmdlet은 새 형식을 나타내는 System.Type 개체를 반환합니다.
참고
추가하는 형식은 현재 세션에만 존재합니다. 모든 세션에서 형식을 사용하려면 PowerShell 프로필에 추가합니다. 프로필에 대한 자세한 내용은 about_Profiles참조하세요.
형식 이름 및 네임스페이스는 세션 내에서 고유해야 합니다. 형식을 언로드하거나 변경할 수 없습니다. 형식의 코드를 변경해야 하는 경우 이름을 변경하거나 새 PowerShell 세션을 시작해야 합니다. 그렇지 않으면 명령이 실패합니다.
IronPython 및 J#과 같은 일부 언어에 대한 CodeDomProvider 클래스는 출력을 생성하지 않습니다. 따라서 이러한 언어로 작성된 형식은 Add-Type
사용할 수 없습니다.
이 cmdlet은 Microsoft .NET Framework CodeDomProvider 클래스기반으로 합니다.