2011-01-26 8 views
1

満たされていないGetItem関数が返す0の成功のために、しかし$ fieldInfosと$ dataは$ nullです。私はC#コンソールアプリケーションから同じことを行う場合、それは正常に動作し、data.Lengthは私のファイルの長さと同じです。outパラメータは、私はPowerShellのスクリプトからのSharePointのCopy.asmx Webサービスを呼び出すようにしようとしている

Copy copyWS = new Copy(); 
copyWS.UseDefaultCredentials = true; 

FieldInformation[] fieldInfos = null; 
byte[] data = null; 
uint result = copyWS.GetItem(fileUrl, out fieldInfos, out data); 

Console.WriteLine(result); 
Console.WriteLine(data.Length); 

私の間違いや、これはPowerShellのバグですか? beefarinoのアドバイスに従い

が、私は$ copyWS.GetItemと呼ばれました:

System.UInt32 GetItem(string Url, 
Microsoft.PowerShell.Commands.NewWebserviceProxy.AutogeneratedTypes.WebServiceProxy3http___moss__vti_bin_Copy_asmx.FieldInformation[]&, jfww_71i, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null Fields, 
System.Byte[]&, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 Stream) 

だから私のパラメータは右見て、私もフルネームMicrosoft.PowerShell.Commands.NewWebserviceProxy.AutogeneratedTypes.WebServiceProxy3http___moss__vti_bin_Copy_asmx.FieldInformation[]が、無駄にを表示するには、$ fieldInfosの種類を変更しました。

答えて

3

その接続-webservice.ps1が新しい-たWebServiceProxyを呼び出して終わる...

は、get-部材を用いPowerShellのからWebサービスメソッドのシグネチャを確認してくださいと仮定:

$copyWS | get-member

かによって、それを起動せずにホストにメソッドをダンプ:

$copyWS.GetItem

プロキシは、いつものように見えるとは限りません。例えば、この方法のために:

int GetData(out byte[] value);

のPowerShellによって生成された新しい-たWebServiceProxy方法は次のようになります。

void GetData([ref] $result, [ref] $resultSpecified, [ref] $value)

+0

良い点、$ copyWS.GetItemのために私が手に:可能System.UInt32のGetItem (String Url、Microsoft.PowerShell.Commands.NewWebserviceProxy.AutogeneratedTypes.WebServiceProxy3http ___ moss__vti_bin_Copy_asmx.FieldInformation []&、jfww_71i、Version = 0.0.0.0、Culture =ニュートラル、PublicKeyToken = nullフィールド、System.Byte []&、mscorlib、Version = 2.0 .0.0、Culture =ニュートラル、PublicKeyToken = b77a5c561934e089ストリーム) – Hinek

+0

私の使い方は正しいようです(私の質問の編集を参照)...他のアドバイスはありますか? – Hinek

+1

はい - これは駄目です。変数宣言から型指定子を削除してみてください。なぜ私はこれを考えているのか分かりませんが、タイプを扱うときにはPowerShellが嫌なことがあります。 – beefarino

関連する問題