私はwebformsを使用していますが、リポジトリへのフォローしている具体的なリファレンスをどのように削除することができますか?過去に私はMVCと城ウィンザーを使用しましたが、私はここでそれを使うことはできないと思いますか?背後コンストラクタからの依存関係の削除
コード:suggetedとして私はウィンザー工場
WindsorContainer container;
public WindsorControllerFactory()
{
container = new WindsorContainer(
new XmlInterpreter(new ConfigResource("castle")));
var controllerTypes =
from t in Assembly.GetExecutingAssembly().GetTypes()
where typeof(IController).IsAssignableFrom(t)
select t;
foreach (Type t in controllerTypes)
{
container.AddComponentLifeStyle(t.FullName, t,
LifestyleType.Transient);
}
CommonServiceLocatorPageHandlerFactory.Container = container;
}
に追加のコードを追加するだけでなく、静的メソッドを更新しました
UPDATED
ICustomerRepository repos;
public Workout_Admin()
// here is the offending concrete implementation
: this(new SqlCustomerRepository()) { }
public Workout_Admin(ICustomerRepository repos)
{
this.repos = repos;
}
---
発生し続ける問題は、configファイルからアセンブリを読み込むことです。 CommonServiceLocatorPageHandlerFactoryがあり、assemblyという名前のアセンブリがyourfitという名前のファクトリです。そして、ここでは関係のconfigs
<httpHandlers>
<add verb="*" path="*.aspx"
type="YourFit.Factory.CommonServiceLocatorPageHandlerFactory, YourFit"/>
</httpHandlers>
<handlers>
<remove name="UrlRoutingHandler"/>
<add name="CSLPageHandler" verb="*" path="*.aspx"
type="YourFit.Factory.CommonServiceLocatorPageHandlerFactory, YourFit"/>
</handlers>
であり、誤差がある:
は、タイプをロードできませんでした 'YourFit.Factory.CommonServiceLocatorPageHandlerFactory' アセンブリから 'YourFit'。
私は本当に愚かである可能性が高いと思います。これであなたの時間をありがとうございました。
このSOの質問もご覧ください。http://stackoverflow.com/questions/293790/how-to-use-castle-windsor-with-asp-net-web-forms – Steven
ありがとうございます。私は現在、Microsoft.Practices.ServiceLocation.ServiceLocator.Current.GetInstanceのDLLを入手する方法を検討中です。 – hoakey
この記事では、彼が「単純なService Locatorライブラリはそのインターフェイスに依存しているので、私は故意にCSLを使用しています。あなたはCSLを使用していないので、IoCライブラリで動作するようにコードを変更することは、以下に示すように、1行を変更することによって行うことができます。その後、彼は例を示すようには見えない。そのため、私はそれを実行すると、エラー "ファイルまたはアセンブリ 'CSL'またはその依存関係のいずれかを読み込めませんでした。何か案は? – hoakey