Замок Windsor с несколькими конструкторами

У Вас на самом деле есть одинарные кавычки в Вашей команде? Я не думаю, что они необходимы. Плюс, я думаю, что Вам также нужно --no-auth-cache, и --non-interactive

Вот то, что я использую (никакие одинарные кавычки)

--non-interactive --no-auth-cache --username XXXX --password YYYY

Посмотрите Удостоверения клиента, Кэширующиеся документация в svnbook для получения дополнительной информации.

6
задан SteveC 25 April 2018 в 16:06
поделиться

1 ответ

Это можно рассматривать как ошибку (и действительно, в подобных случаях это можно исправить), но это своего рода конструктивная особенность.

Windsor пытается сопоставить самый жадный конструктор (тот, у которого есть большинство параметров) он может удовлетворить.

Однако в вашем случае есть два конструктора, которые имеют наибольшее количество параметров (из одного), поэтому Виндзор просто выбирает первый, а то, что означает «первый», не определено.

действительно, если вы измените порядок ваших конструкторов в исходном коде, ваш код начнет работать, хотя это взлом, основанный на недокументированном поведении, и он этого не делает.

Давайте вернемся к тому, с чего мы начали, не так ли?

Я сказал, что Виндзор сбит с толку, потому что не существует единственного жадного конструктора, который он может удовлетворить.

Быстрое и четко определенное исправление: добавление фальшивого параметра в один из конструкторов th, чтобы они имели разное количество параметров:

public class UserRepository : IUserRepository {
    public UserRepository(IObjectContext objectContext, object fakeIgnoreMe)  {
        // Check that the supplied arguments are valid.
        Validate.Arguments.IsNotNull(objectContext, "objectContext");
        // ignoring fake additional argument
        // Initialize the local fields.
        ObjectContext = objectContext;
    }

    public UserRepository(IObjectContextFactory factory) 
        : this(factory.CreateObjectContext()) { 
    }

    // -----------------------------------------------
    // Insert methods and properties...
    // -----------------------------------------------
}

Сообщите об этой проблеме в список пользователей Castle или ] прямо в систему отслеживания проблем , чтобы она была исправлена.

7
ответ дан 17 December 2019 в 00:10
поделиться
Другие вопросы по тегам:

Похожие вопросы: