Можно ли вызывать методы класса, устанавливать / получать свойства из консоли или powershell - PullRequest
2 голосов
/ 16 февраля 2010

Если я напишу библиотеку классов в Visual Studio, можно ли написать консольное приложение или скрипт powershell, который может вызывать методы или устанавливать / получать свойства?

Это полезно для тестирования API без необходимости создания формы с множеством кнопок и т. Д.

На самом деле я имел в виду выполнение своих собственных библиотек классов. Поэтому, если я напишу библиотеку классов с пространством имен a.b с классом с именем c и методом c, называемым test (), я бы хотел выполнить это из консольного приложения или PS.

Спасибо

Ответы [ 5 ]

5 голосов
/ 16 февраля 2010

PowerShell делает это даже проще, чем консольное приложение, просто откройте консоль PowerShell и обновите свой объект. Затем вы можете установить свойства, вызвать методы и т. Д.

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

Я должен быть уверен, что это действительно наиболее полезно для выборочной проверки или опробования нового API. В большинстве случаев использование какой-либо среды модульного тестирования (MSTest, NUnit и т. Д.), Как уже упоминалось, даст вам более высокую отдачу от ваших временных затрат.

2 голосов
/ 16 февраля 2010

Это легко сделать из консольного приложения -

Просто добавьте ссылку на вашу библиотеку классов и используйте типы по мере необходимости. Просто знайте, что вы сможете получить доступ только к своему общедоступному API, поскольку это отдельная сборка.

Однако для целей тестирования вы можете рассмотреть возможность использования инфраструктуры тестирования. Visual Studio включает один (в Pro + SKU).

1 голос
/ 16 февраля 2010

В качестве альтернативы Powershell, вы можете использовать IronPython:

import clr
clr.AddReference("MyLibrary");

foo = MyNamespace.MyClass()
foo.Property = "something"
print foo.GetSomeValue()
1 голос
/ 16 февраля 2010

Да. 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()
0 голосов
/ 16 февраля 2010

Да, вы можете написать приложение, которое вызывает методы из библиотеки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...