35

I regularly have to convert an existing C# code snippet/.CS file to a PowerShell script. How could I automate this process?

While I am aware that there are methods that can convert a .cs file to a cmdlet, I'm only interested in converting the C# code to a script or module.

1

3 Answers 3

79

I know you're looking for something that somehow converts C# directly to PowerShell, but I thought this is close enough to suggest it.

In PS v1 you can use a compiled .NET DLL:

PS> $client = new-object System.Net.Sockets.TcpClient
PS> $client.Connect($address, $port)

In PS v2 you can add C# code directly into PowerShell and use it without 'converting' using Add-Type (copied straight from MSDN )

C:\PS>$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);
    }
}
"@

C:\PS> Add-Type -TypeDefinition $source

C:\PS> [BasicTest]::Add(4, 3)

C:\PS> $basicTestObject = New-Object BasicTest 
C:\PS> $basicTestObject.Multiply(5, 2)
Sign up to request clarification or add additional context in comments.

2 Comments

Can I use my custom libraries C# with helpers and utils class?
How to get .Netframework support in PowerShell? Will this work on just a brand new machine imaged with windows without .netframework installed? How to get .net framework support in a powershell?
12

There is a Reflector add-in for PowerShell that will allow you to see the corresponding PowerShell script for static methods on classes

There's a good post with the example: http://blogs.msmvps.com/paulomorgado/2009/09/17/powershell-for-the-net-developer/.

Comments

1

PowerShell Pro Tools for Visual Studio have a feature to convert C# code in a PowerShell script.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.