是否可以从console或powershell调用类方法,设置/获取属性

时间:2010-02-15 21:32:01

标签: c# powershell

如果我在Visual Studio中编写类库,是否可以编写可以调用方法或设置/获取属性的控制台应用程序或powershell脚本?

这对于测试API非常有用,无需使用大量按钮等创建表单。

我实际上是指我执行自己的类库。因此,如果我编写一个带有a.b命名空间的类库,其中包含一个名为c的类和一个名为test()的c方法,我想从控制台应用程序或PS执行此操作。

由于

5 个答案:

答案 0 :(得分:5)

PowerShell使其比控制台应用程序更容易,只需打开PowerShell控制台并新建对象即可。然后,您可以设置属性,调用方法等。

    $request = [Net.HttpWebRequest]::Create("http://somewhere/")
    $request.Method = "Get"
    $request.KeepAlive = $true
    $response = $request.GetResponse()
    $response.Close()

我应该清楚这对于进行现场检查或尝试新API非常有用。在大多数情况下,使用某种单元测试框架(MSTest,NUnit等),正如其他人所提到的那样,将为您提供更好的时间投资回报。

答案 1 :(得分:2)

从控制台应用程序中轻松完成 -

只需添加对类库的引用,并根据需要使用这些类型。请注意,您只能访问公开 API,因为它是一个单独的程序集。

但是,出于测试目的,您可能需要考虑使用测试框架。 Visual Studio包含一个(在Pro + SKU中)。

答案 2 :(得分:1)

是Powershell能够直接调用方法并设置.Net类的属性。

$conn = new-object System.Data.SqlClient.SqlConnection($connstr)
$conn.Open()
$comm = new-object System.Data.SqlClient.SqlCommand()
$comm.Connection = $conn
$comm.CommandText = $sqlstr
$dr = $comm.ExecuteReader()
while($dr.Read())
{
   //...
}
$dr.Close()
$conn.Close()

答案 3 :(得分:1)

作为Powershell的替代品,您可以使用IronPython:

import clr
clr.AddReference("MyLibrary");

foo = MyNamespace.MyClass()
foo.Property = "something"
print foo.GetSomeValue()

答案 4 :(得分:0)

是的,您可以编写一个从库中调用方法的应用程序。