Пользователи codelogic и harley корректен, но имеет в виду, знаете ли Вы, что строка является целым числом (например, 545) можно назвать интервал ("545") без первого кастинга для плавания.
, Если Ваши строки находятся в списке, Вы могли бы использовать функцию карты также.
>>> x = ["545.0", "545.6", "999.2"]
>>> map(float, x)
[545.0, 545.60000000000002, 999.20000000000005]
>>>
только хорошо, если они являются всеми одинаковыми тип.
Я считаю, что вам следует использовать свой собственный командлет Powershell (Commandlet). По сути, вы наследуете от базового класса, переопределяете метод и этот метод, который вызывается при вызове этого командлета из Powershell. Таким образом, вы можете делать то, что вам нужно на C #, и просто вызывать это из Powershell. Рисунок примерно такой:
РЕДАКТИРОВАТЬ: Забыл ссылку на MSDN для создания командлетов: http://msdn.microsoft.com/en-us/library/dd878294 (VS.85) .aspx
[Cmdlet(VerbsCommunications.Get, "MyCmdlet")]
public class MyCmdlet : Cmdlet
{
[Parameter(Mandatory=true)]
public string SomeParam {get; set;}
protected override void ProcessRecord()
{
WriteObject("The param you passed in was: " + SomeParam);
}
}
Вы затем вызовет этот командлет из Powershell примерно так:
PS>Get-MyCmdlet -SomeParam 'whatever you want'
Затем, чтобы использовать MSMQ, в Интернете есть много примеров того, как это сделать из C #:
Может что-то вроде. Это немного многословно, но оно помогает продемонстрировать, что PowerShell может делать это без CmdLet.
# Loads the assembly into PowerShell (because it's not a pre-loaded one)
[Reflection.Assembly]::LoadWithPartialName( "System.Messaging" ) | Out-Null
# This is just an array which could also just be a file
$queueList = ( ".\q1", ".\q2", ".\q3", ".\q4" )
# Create the queues by piping the list into the creation function
# $_ refers to the current obect that the ForEach-Object is on
$queueList | ForEach-Object { [System.Messaging.MessageQueue]::Create( $_ ) }
If you are using the PowerShell Community Extensions (PSCX), it has cmdlets for creating and managing MSMQ:
Нет причин, по которым вы не можете использовать System.Messaging из PowerShell. Просто загрузите нужную сборку, и вы можете создавать / удалять / подключать свои очереди к своему сердцу. Создание настраиваемого командлета, безусловно, интересный вариант, но он может оказаться излишним в зависимости от того, что вы хотите (простой сценарий может помочь).