Неоднозначные участники класса в vb.net

Просто используйте лямбду с телом для дополнительной настройки экземпляра fixture перед его возвратом:

public class AutoMoqDataAttribute : AutoDataAttribute
{
    public AutoMoqDataAttribute() : base(() =>
    {
        var fixture = new Fixture().Customize(new CompositeCustomization(
            new AutoMoqCustomization(),
            new SupportMutableValueTypesCustomization()));

        fixture.Behaviors.OfType<ThrowingRecursionBehavior>().ToList().ForEach(b => Fixture.Behaviors.Remove(b));
        fixture.Behaviors.Add(new OmitOnRecursionBehavior());

        return fixture;
    })
    {
    }
}

Таким образом, активация Fixture будет действительно ленивой, и вы получите ожидаемую оптимизацию производительности; -)

8
задан tvaananen 15 October 2008 в 20:55
поделиться

2 ответа

Я не думаю, что можно обойти это. Свяжитесь с автором компонента C#, Вы пытаетесь использовать и убедить их исправлять свой код.

Кстати, это - основная причина позади CLSCompliant(true) атрибут, который, если Вы пишете API или другой код, который имеет высокую вероятность того, чтобы быть используемым другими языками, которые необходимо всегда устанавливать. Это отметило бы эту проблему для исходного автора для знания и фиксирует правильно.

7
ответ дан 5 December 2019 в 15:28
поделиться

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

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

Другой должен использовать отражение, которое не является такой же работы как обертывание, но является все еще бессмысленной работой по сравнению с автором, просто пишущим код правильно во-первых.

4
ответ дан 5 December 2019 в 15:28
поделиться
Другие вопросы по тегам:

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