2017-07-05 16 views
0

CS-ScriptライブラリでAsmHelperクラスを使用しています。私は1つのAsmHelperオブジェクトだけを使用し、CSScript.LoadCodeを使用してファイルパスを変更する方法を知りたいので、前のスクリプトの実行後に新しいスクリプトを読み込むことができますが、1つのAsmHelperオブジェクトを使用します。今のところ、以下に示すように、私は4つのAsmHelperオブジェクトを持っています。あなたは追加の詳細を提供するために、私を必要とした場合CSスクリプトのファイルパスを変更するAsmHelperオブジェクト

public interface ITransform 
{ 
    User Transform(User record); 
} 

は、すぐ下に尋ねる:ここ

 AsmHelper transform1 = new AsmHelper 
      (CSScript.LoadCode(@"CS-Scripts\parent.cs", null, true)); 
     ITransform engine1 = (ITransform)transform1.CreateObject("Script"); 

     AsmHelper transform2 = new AsmHelper 
      (CSScript.LoadCode(@"CS-Scripts\bYear.cs", null, true)); 
     ITransform engine2 = (ITransform)transform2.CreateObject("Script"); 

     AsmHelper transform3 = new AsmHelper 
      (CSScript.LoadCode(@"CS-Scripts\fInitial.cs", null, true)); 
     ITransform engine3 = (ITransform)transform3.CreateObject("Script"); 

     AsmHelper transform4 = new AsmHelper 
      (CSScript.LoadCode(@"CS-Scripts\pet.cs", null, true)); 
     ITransform engine4 = (ITransform)transform4.CreateObject("Script"); 

は、必要であればそれで行くのインタフェースです。

答えて

0

AsmHelperを再利用しないでください。これは、スクリプトを使用する単一のケースの初期段階に設計されています。だからこそIDisposableです。

AsmHelper rsponsibilityは、リモートAppDomainにロードされたときにスクリプト固有のアセンブリプロービングとアンロードスクリプトアセンブリを処理する 'Dispatch'呼び出しモデルを介してスクリプトメソッドにアクセスしています。

あなたは、新しいAPIを使用してオフにはるかに優れている、これらの機能のどれを使用していないされていないので:

​​

あなたはCS-スクリプトNuGetパッケージをインストールした場合、それはあなたのVSのプロジェクトにそのいくつかのサンプルファイルを追加しますこれらの技術を実証する。

+0

私はこれまでそうしていましたが、私がAsmHelperを使用している理由は、それをアンロードしてメモリを節約できるからです。 –

+0

AsmHelperをアンロードする方法を知っていますか? –

+0

元の投稿で提供したコードは決してアンロードされません。あなたは実際に処分時にAppDomainのアンロードを保証する別のAsmHelperコンストラクタを使用することになっています。コードサンプルを見て、それがどのように完了したかを確認します。 – taras

関連する問題