これは可能だと聞きましたが、これがどのように機能するか想像できません。
プロジェクトに依存性注入 (autofac) を使用しています。私は他の誰かとプロジェクトを開発し、彼のクラスのメソッドを呼び出します (私は彼のアセンブリを使用します)。
次に、他の人が自分の操作に使用するオブジェクトのインスタンスを取得します。すべてのメソッドでこのオブジェクト インスタンスを渡すことを避け、autofac を使用します。
パラメーターを渡さずに、アセンブリ プロジェクトでこのインスタンスを解決できますか? 少なくとも DI-Container を渡す必要があると思います...しかし、依存性注入の概念により、「実行コンテキスト」全体でオブジェクトを解決し、同じものを取得できるようになるはずだと聞きました。
asp.net Web API の例を次に示します。
これは、asp.net webapi プロジェクトの API コントローラーです。
public class DocumentsController : ApiController
{
// GET /api/documents
public HttpResponseMessage Get()
{
// Here I call the method of the other developer,
// security/authorization should be handled in
// his method!
// In this context the WebAPI provides the
// IPrincipal of the current user in this
// variable => "HttpContext.Current.User" but we
// don't want to pass it on every method call
ClassFromOtherAssembly.GetDocuments();
HttpResponseMessage response =
Request.CreateResponse<IEnumerable<Document>>(
HttpStatusCode.OK, documents);
return response;
}
}
これは他の開発者のクラスです。彼はドキュメントを配信し、ユーザーが承認されているかどうかを確認する必要があります。
public class ClassFromOtherAssembly
{
public List<Documents> GetDocuments()
{
//Security check
IPrincipal principal =
DI_Container.Resolve(IPrincipal);
if(principal.IsInRole("Admin"))
{
//return the list
}
else
{
//return empty list
}
}
}