2012-03-28 33 views
1

observablecollectionを使用するC#コードからpowershellに型を追加しようとしています。私は1日か2日は試しましたが、何もできません。powershellはObservableCollectionを使用してC#を埋め込みました

私が思いついたのは、余分なPowerShellモジュールに頼らずにwpfのビューモデルでした。

-タイプを追加します:C:\ Users \ユーザーncollier \のAppData \ローカル私はエラーを乗り越えることができません

$code = @" 

using System; 
using System.Collections.ObjectModel; 

namespace Test 
{ 
    public class TestClass 
    { 
     public ObservableCollection<string> Items { get; set; } 

     public TestClass() 
     { 
      Items = new ObservableCollection<string>(); 
     } 
    } 
}  

"@ 


Add-Type -TypeDefinition $code -ReferencedAssemblies @("WindowsBase") -Language CSharpVersion3 

これは私が作ってみた最新のものです\一時\ wjq4ciwc.0.cs(9):型または名前空間名「のObservableCollection」が見つかりませんでした(? あなたがusingディレクティブまたはアセンブリ参照が不足している)

編集 私がしようとしていますこれを実行するにはpowergui、しかし、もし私がそれをpowershell ISEで実行すると、おそらく動作します...私はpowerguiで間違っている可能性がありますか?

+0

があるかどうかを確認しますが、これはあなたのコードであることを確信していますか?私はクラス "部署"の定義を見つけることができませんし、もし私が - コレクションはコレクションに収まらないでしょう santa

+0

私はそれを修正しました。私はコードを減らした。それはDepartmentクラスを持っていましたが、私は物事を分離しようとしています。 – 249076

答えて

1

はちょうど試してみてください。私のボックスで

Add-Type -TypeDefinition $code 

私はタイプを追加することができます。

コメントを編集した後:

私は4.0全くニーズが、このコードでは(他の人の状況をReferencedAssembliesを追加することもありません。ネットのロードにpowershell.exe.config(またはISE powershell_ise.exe.config用)を使用すると、参照system.coreを必要とするか、他の人を必要とすることを発見アセンブリ参照)。私はPowerGuiも.net 4.0をロードすると思うが、私はそれをテストすることができる。あなたは、Powerguiブロックの上に、この試すことができます :

[appdomain]::currentdomain.getassemblies() 

をし、アセンブリのバージョン4.0.xxxx

+0

Add-Type -TypeDefinition $ codeを使用すると、powerguiでは動作しますが、powershell ISEでは動作しません。なぜ同じコードが違うのでしょうか?どちらも同じことをしていませんか? – 249076

+0

本当に奇妙な行動... ISEはあなたのコマンドラインを動作させる....私は少し時間を考えて、私はここで私の控除を報告する! –

+0

@ 249076詳細情報が見つかりました。 –

関連する問題