タグ

2016年3月29日のブックマーク (2件)

  • 二つの AppDomain の狭間で - I wish we human would be gatekeepers of CLR... -

    もっと境界を自由に行き来できるようになりたい! .NET Framework を使われている方は、もしかしたら聞いたことがあるかもしれない機能、AppDomain。 MSDN では「アプリケーションを分離する利点」として次のような説明がされています。 あるアプリケーションで実行されているコードは、他のアプリケーションのコードに直接アクセスできないよ。 あるアプリケーションで発生したエラーが他のアプリケーションに影響することはないよ。 プロセス全体を停止せずに、各アプリケーションを停止できるよ。 コードの構成情報(読み込むアセンブリのバージョンポリシーや場所)をアプリケーション毎に決められるよ。 コードに与えるアクセス許可をアプリケーション毎に制御できるよ。 プロセスに比べ、その生成コストや相互通信コストが低いため、サーバーに利用すればそのスケーラビリティは飛躍的に向上し、セキュリティレベル

    二つの AppDomain の狭間で - I wish we human would be gatekeepers of CLR... -
    indication
    indication 2016/03/29
    appdomainに関する注意点
  • 別のAppDomainで処理を実行するための方法メモ (AppDomain, ExecuteAssembly, DoCallBack, CreateInstanceAndUnwrap, MarshalByRefObject, Serializable) - いろいろ備忘録日記

    たまに別のAppDomainを作成して、処理を実行することがあるので 実行の方法について個人的にメモメモ。 方法はいくつかあるのですが、私がよく利用するのは以下の3つ。 AppDomain.ExecuteAssemblyを利用する。 AppDomain.DoCallbackを利用する。 AppDomain.CreateInstanceAndUnwrapを利用して、プロキシを取得し実行. 既に実行するためのアセンブリが存在している場合は、ExecuteAssemblyがお手軽。 でも、実行するだけなので細かい調整が出来ない。 DoCallBackは、デリゲートを渡せるので便利。 必要な処置を行った後、ExecuteAssemblyを呼び出したりする。 CreateInstanceAndUnwrapは、一番フレキシブルな方法。 以下、サンプルです。 予め、ExecuteAssemblyメソッド

    別のAppDomainで処理を実行するための方法メモ (AppDomain, ExecuteAssembly, DoCallBack, CreateInstanceAndUnwrap, MarshalByRefObject, Serializable) - いろいろ備忘録日記
    indication
    indication 2016/03/29
    適度にまとめられていてよい。ただし、例外ハンドラを受け取った瞬間、カレントドメインにアセンブリを探しに行くので細心の注意が必要。特にpdbとか離してくれないから、場合によってはプロセス分離がおすすめ