如果我在Visual Studio中编写类库,是否可以编写可以调用方法或设置/获取属性的控制台应用程序或powershell脚本?
这对于测试API非常有用,无需使用大量按钮等创建表单。
我实际上是指我执行自己的类库。因此,如果我编写一个带有a.b命名空间的类库,其中包含一个名为c的类和一个名为test()的c方法,我想从控制台应用程序或PS执行此操作。
由于
答案 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)
是的,您可以编写一个从库中调用方法的应用程序。