PowerShell - 无法调用Web服务方法传递和返回对象

时间:2015-03-17 22:06:19

标签: c# web-services wcf powershell object

我尝试从PowerShell脚本调用Web服务方法,但它失败了。这是C#代码:

public MyTable InsertRow(MyTable data)
{
   var dataContext = new MyEntities();

   dataContext.MyTables.AddObject(data);
   dataContext.SaveChanges();

   return data;
}

这就是我在PowerShell中调用它的方式:

$uri = "http://localhost/MyWcfService/MyService.svc?wsdl"
$svc = New-WebServiceProxy -Uri $uri -UseDefaultCredential

$t = $svc.GetType().Namespace
$attributes = New-Object($t + ".MyTable")
$attributes.Name = "Project X"
$attributes.Comment = "This is a test"

$resp = $svc.InsertRow($attributes)
$resp

这是我得到的错误:

  

无法找到" InsertRow"和参数计数:" 1"。在行:1个字符:1   + $ resp = $ svc.InsertRow($ attributes)   + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~       + CategoryInfo:NotSpecified:(:) [],MethodException       + FullyQualifiedErrorId:MethodCountCouldNotFindBest

我做错了什么?

更新 当我调用$ attributes.GetType():

时,这是内置的.NET类型
IsPublic IsSerial Name                                     BaseType                                                                                                      
-------- -------- ----                                     --------                                                                                                      
True     True     MyTable                            Microsoft.PowerShell.Commands.NewWebserviceProxy.AutogeneratedTypes.WebServiceProxy1WcfService_MyService_s...

1 个答案:

答案 0 :(得分:0)

我放弃尝试在PowerShell中调用我的RESTful Web服务。我将本教程用于create entity data in a data service,然后使用此sample code来使用C#来使用服务。我还没试过,但我应该能够use the C# code in PowerShell script(这是我项目的要求)。