TGViewer
Уютное сообщество C# разработчиков Уютное сообщество C# разработчиков @cscharp · 2.26K subscribers
Post #72 2.47K
Freeze/Inject/Register в AutoFixture

Давным-давно, в первых версиях библиотеки балом правил Register. Два других метода ещё не существовали.

Определён он был следующим образом:

public static void Register<T>(this IFixture fixture, T item)

Однако, была и перегрузка:

public static void Register<T>(this IFixture fixture, Func<T> creator)

Какое-то время казалось, что это нормально, впрочем, вскоре пользователи стали путаться. Например, можно было написать следующий код:

fixture.Register(() => universe.LightUp());

Поскольку делегат может получаться путём приведения ссылкой на метод, то валидной была и следующая запись:

fixture.Register(universe.LightUp);

Что если universe.LightUp это обращение к свойству, а не к методу? Тогда была бы выбрана первая перегрузка.

Но это крайне неочевидно.
Поэтому первая перегрузка превратилась в Inject<T>(this IFixture fixture, T item).

У метода Freeze несколько другая история.
В прошлом оказалось, что достаточно часто встречается следующее использование AutoFixture в императивном стиле:

var foo = fixture.Create<Foo>();
fixture.Inject(foo);

Тогда, автор библиотеки решил, что это так называемая концепция заморозки.
В итоге два вызова превратились в один метод Freeze.

#полезное #tips
More from @cscharp
  1. Sep 21, 2026☄️ Вакансии по C# за неделю: 6️⃣ Senior .NET Developer REMOTE GLOBAL Senior · Remote 2️⃣ J…
  2. Sep 14, 2026C# Programming Автор: Patrick Felicia Год издания: 2024 #csharp #unity #en Скачать книгу
  3. Sep 14, 2026🔍Тестовое собеседование с Senior C# разработчиком уже завтра 15 сентября(уже завтра!) в 1…
  4. Sep 14, 2026🔥 Вакансии по C# за неделю: 📥 Senior Fullstack Developer REDHR.RU Senior · Remote · ₽ 23…
  5. Sep 7, 2026🔔 Вакансии по C# за неделю: ⭐️ Full Stack Developer Life Data Lab Senior · Remote · $3 50…
  6. Sep 3, 2026C#. Алгоритмы и структуры данных Автор: Н. А. Тюкачев Год издания: 2021 #csharp #ds #ru Ск…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →