タグ

ブックマーク / gushwell.ldblog.jp (7)

  • アセンブリを動的にロードし、そして完全にアンロードする:Gushwell's Dev Notes

    このエントリは、C# Advent Calendar jp 2011 への参加記事です。 アセンブリを動的にロードし、利用し終わったらメモリからアンロードしたいという要求って、どれくらいあるのか わかりませんが、今回は、そのやり方を説明します。 これって簡単なようでなかなか面倒です。残念ながら、Assembly クラスには、Load系のメソッドはありますが、 Unload系のメソッドがありません。 こんな時に AppDomainを使うと、要求を満たすことができます。 まずは、以下のようなクラスが、SampleLibraryアセンブリに定義されていたとします。 using System; namespace SampleLibrary { public class SampleClass { public void Execute(string s) { Console.WriteLine(

    masaru_b_cl
    masaru_b_cl 2011/12/18
    AppDomainを作成して、「Proxy」経由でロード。使うことあるかわからんけど覚えておこう。
  • MVVM:コードビハインドに記述しても良いと思う:Gushwell's Dev Notes

    Messengerを理解するために自作してみた(1)-(3) Messenger+Behaviorを理解するために自作してみた(1)-(3) でとりあえず、コードビハインドにコードを記述せずに、ViewModelからViewを操作する 方法については理解したつもりだけれど、 それでも、今の僕の経験と知識では、コードビハインドに次のようなコードを書いても、 良いんじゃないかなーと思ってます。 private void button1_Click(object sender, RoutedEventArgs e) { if (MessageBox.Show("実行しますか", "確認", MessageBoxButton.YesNo) == MessageBoxResult.Yes) { vieewModel.Execute(); } } こう主張すると、 「コードビハインドにView以外のロ

  • MVVM:Messenger + Behaviorを理解するために自作してみた(2):Gushwell's Dev Notes

    前回の続きです。前回までで、Messenger + Behavior の準備はできました。 つまり、フレームワーク側が出来たということです。 では、この簡易フレームワークをつかって、実際に、ViewModelからメッセージを 送り、Viewを操作してみます。 以下のようなプログラム(以前示したものと同じ)を作成します。 今回は、Viewのコードビハインドには、初期状態のまま、何もコードを追加しません。 ■ XAMLの実装 サンプルプログラムのXAMLを示します。 <Window x:Class="MyMessengerSample.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml

  • MVVM:Messenger + Behaviorを理解するために自作してみた(1):Gushwell's Dev Notes

    ■はじめに これまで、3回に亘って、Messengerクラスを自作することで、MVVMにおける Messengerについて理解を深めようとしてきたわけですが、今回は、 「Messenger + Behavior」を使い、ViewModelからViewを操作する方法について考 えてみます。 XAMLにビヘイビアを記述することで、Viewのコードビハインドに、何も記述せずに、 ViewModelからViewを操作できるようになるらしいので、オレオレBehavior を実装して、 これを確かめてみようと思います。 この記事の趣旨は、 MVVMフレームワークがどうやって、Messenger + Behavior を 実現しているかを、理解することなので、当然、Expression Blendに付属している System.Windows.Interactivity も利用しません。 最低限のものを自

  • MVVM:Messengerを理解するために自作してみた(3):Gushwell's Dev Notes

    それでは、前回作成した Messengerクラスを使い、ViewModelからViewにメッセージを送ってみます。 以下のような簡単なプログラムを作成してみます。 TextBoxに文字列を入れ、ボタンを押すとダイアログが表示されるという単純なものです。 まずは、Windowクラスです。 public partial class MainWindow : Window { public MainWindow() { InitializeComponent(); Messenger.Default.Register<DialogBoxMessage>(this, ShowMessage); } public void ShowMessage(DialogBoxMessage msg) { var result = MessageBox.Show(msg.Message, "確認", msg.B

  • MVVM:Messengerを理解するために自作してみた(2):Gushwell's Dev Notes

    前回の続きです。 Messageクラスが定義できたので、次は、Messengerクラスの定義です。 このMessengerクラスには、2つのメソッドを定義します。ひとつは、Register。 もうひとつは、Send メソッドです。 Registerメソッドは、View側で利用するもので、メッセージの型情報と「デリゲート」を 関連付けるものです。 この「デリゲート」は、ViewModelから、Messengerを経由して間接的に呼び出されます。 Sendメソッドは、ViewModelで利用されます。 このSendメソッドは、引数で渡されたMessageオブジェクトに対応したデリゲートを 呼び出す機能を持ちます。 この対応付けは、先ほどのRegisterメソッドで対応付けしたものです。 では、Messengerクラスの実装をしてみます。 public class Messenger { pri

  • MVVM:Messengerを理解するために自作してみた(1):Gushwell's Dev Notes

    MVVMを勉強していたら、Messengerというものが出てきました。 これって何だろうか。 .NET Frameworkのクラスじゃなくて、MVVM Light Toolなどのフレームワークで 用意されているもので、ViewModelからViewを操作する時に利用するもののようです。 要は、ViewModelとViewの仲を取り持つ仲介者クラスです。 と、ここまでは分かりましたが、それ以上のこと(特にどういう仕組みなのか)が良くわかりません。 そこで、理解を深めるために、MVVM Light Toolの外部インターフェイスを参考に Messengerクラスをちょっと自作してみました。 とはいっても、ものすごい手抜きなので、これを実際に使うわけにはいかないと思うし、 MVVM Light Toolのソースコードは一切みていないので、僕の理解が間違っている可能性は ありますが、まあ、Mess

    masaru_b_cl
    masaru_b_cl 2011/05/10
    後で読む
  • 1