Я использую веб-формы, и мне интересно, как я могу удалить следующую конкретную ссылку на хранилище. В прошлом я использовал Castle Windsor с MVC, но я не думаю, что смогу использовать это здесь?
Код:
ICustomerRepository repos;
public Workout_Admin()
// here is the offending concrete implementation
: this(new SqlCustomerRepository()) { }
public Workout_Admin(ICustomerRepository repos)
{
this.repos = repos;
}
ОБНОВЛЕНО ---
Я обновил статический метод как предложенный, а также добавил дополнительный код в фабрику виндзоров
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;
}
Проблема, которая продолжает возникать, связана с загрузкой сборки из файла конфигурации. CommonServiceLocatorPageHandlerFactory находится в сборке, которая называется yourfit, папка называется factory. А вот и соответствующие конфиги
<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'.
Я знаю, что, скорее всего, я действительно глупый. Большое спасибо за ваше время.