2011-11-10 8 views
0

次のように私はILinkExtractorインスタンスを作成します。Ninject 2でインスタンスAppDomainを定義していますか?

void myMethod() { 
    AppDomain webDomain = createWebProtectedAppDomain(); 
    ObjectHandle linkExtractorObj = webDomain.CreateInstanceFrom(assemblyPath, typeof(LinkExtractor).FullName); 
    ILinkExtractor linkExtractor = (ILinkExtractor)linkExtractorObj.Unwrap(); 
    // use it... 
    // ... 
    // then release the appdomain... 
    AppDomain.Unload(webDomain); 
} 

私ははAppDomainののすべての複雑さに隠れて、代わりにこれを使用したいと思います:

つまり
void myMethod() { 
    ILinkExtractor linkExtractor = kernel.Get<ILinkExtractor>(); 
    // use it... 
    // ... 
    // then release (transparently) the appdomain... 
} 

をしたいと思いますI ninject 2を使用して、AppDomain情報をインスタンスに制限してWeb使用を制限しますが、この動作は呼び出し元によって隠されるはずです。

ninject 2を使用してこの動作を行うことは可能ですか?

ありがとうございます!

答えて

0

ILinkExtractorの有効期間を管理するためにIDisposableを実装するILinkExtractorManagerを作成します。使用端部は、廃棄()はそのときのアプリケーションドメインをアンロードすることができるマネージャーに呼び出される

using(ILinkExtractorManager manager = kernel.Get<ILinkExtractorManager>()) 
{ 
    ILinkExtractor extractor = manager.GetExtractor(); 

    // usage of extractor 

} 

:次にusing句を使用します。

関連する問題