PowerShell
प्रबंधित कोड एम्बेड करना (C # | VB)
खोज…
परिचय
यह विषय संक्षेप में वर्णन करने के लिए है कि कैसे C # या VB .NET प्रबंधित कोड को स्क्रिप्ट और PowerShell स्क्रिप्ट में उपयोग किया जा सकता है। यह विषय ऐड-टाइप cmdlet के सभी पहलुओं की खोज नहीं कर रहा है।
ऐड-टाइप cmdlet के बारे में अधिक जानकारी के लिए, कृपया यहाँ MSDN प्रलेखन (5.1 के लिए) देखें : https://msdn.microsoft.com/en-us/powershell/reference/5.1/microsoft.powershell.utility.add- प्रकार
पैरामीटर
पैरामीटर | विवरण |
---|---|
-TypeDefinition <String_> | कोड को एक स्ट्रिंग के रूप में स्वीकार करता है |
-Language <String_> | प्रबंधित कोड भाषा निर्दिष्ट करता है। स्वीकृत मान: CSharp, CSharpVersion3, CSharpVersion2, VisualBasic, JScript |
टिप्पणियों
जोड़ा प्रकार निकाल रहा है
PowerShell के बाद के संस्करणों में, PowerShell cmdlet पुस्तकालयों में Remove-TypeData को जोड़ा गया है जो एक सत्र के भीतर एक प्रकार को हटाने की अनुमति दे सकता है। इस cmdlet पर अधिक जानकारी के लिए, यहां जाएं : https://msdn.microsoft.com/en-us/powershell/reference/4.0/microsoft.powershell.utility/remove-typedata
CSharp और .NET सिंटैक्स
.NET के साथ अनुभव करने वालों के लिए यह कहे बिना जाता है कि C # के अलग-अलग संस्करण कुछ निश्चित सिंटैक्स के समर्थन में उनके स्तर में काफी भिन्न हो सकते हैं।
यदि Powershell 1.0 और / या-लंगोट CSharp का उपयोग किया जाता है, तो प्रबंधित कोड .NET 2.0 का उपयोग करेगा जिसमें कई विशेषताओं का अभाव है, जो C # डेवलपर्स आमतौर पर इन दिनों एक दूसरे विचार के बिना उपयोग करते हैं, जैसे कि Generics, Linq और Lambda। इसके शीर्ष पर औपचारिक बहुरूपता है, जिसे C # / NET के बाद के संस्करणों में डिफ़ॉल्ट मापदंडों से नियंत्रित किया जाता है।
C # उदाहरण
यह उदाहरण दिखाता है कि कुछ मूल C # को PowerShell स्क्रिप्ट में कैसे एम्बेड करें, इसे रनस्पेस / सत्र में जोड़ें और PowerShell वाक्यविन्यास के भीतर कोड का उपयोग करें।
$code = "
using System;
namespace MyNameSpace
{
public class Responder
{
public static void StaticRespond()
{
Console.WriteLine("Static Response");
}
public void Respond()
{
Console.WriteLine("Instance Respond");
}
}
}
"@
# Check the type has not been previously added within the session, otherwise an exception is raised
if (-not ([System.Management.Automation.PSTypeName]'MyNameSpace.Responder').Type)
{
Add-Type -TypeDefinition $code -Language CSharp;
}
[MyNameSpace.Responder]::StaticRespond();
$instance = New-Object MyNameSpace.Responder;
$instance.Respond();
VB.NET उदाहरण
यह उदाहरण दिखाता है कि कुछ मूल C # को PowerShell स्क्रिप्ट में कैसे एम्बेड करें, इसे रनस्पेस / सत्र में जोड़ें और PowerShell वाक्यविन्यास के भीतर कोड का उपयोग करें।
$code = @"
Imports System
Namespace MyNameSpace
Public Class Responder
Public Shared Sub StaticRespond()
Console.WriteLine("Static Response")
End Sub
Public Sub Respond()
Console.WriteLine("Instance Respond")
End Sub
End Class
End Namespace
"@
# Check the type has not been previously added within the session, otherwise an exception is raised
if (-not ([System.Management.Automation.PSTypeName]'MyNameSpace.Responder').Type)
{
Add-Type -TypeDefinition $code -Language VisualBasic;
}
[MyNameSpace.Responder]::StaticRespond();
$instance = New-Object MyNameSpace.Responder;
$instance.Respond();