TGViewer
Уютное сообщество C# разработчиков Уютное сообщество C# разработчиков @cscharp · 2.26K subscribers
Post #78 2.87K
Многоликая регистрация в стандартном контейнере

Допустим, у нас есть некоторый класс, который реализует более одного интерфейса:

public interface IBar {}
public interface IFoo {}

public class FooBar : IFoo, IBar {}


Наша задача зарегистировать экземпляр FooBar таким образом, чтобы при внедрении зависимостей IBar и IFoo использовался один и тот же объект.

Попытавшись совершить регистрацию наивным путём, мы потерпим неудачу, зависимости будут ссылаться на разные экземпляры FooBar:

services.AddSingleton<IFoo, FooBar>();
services.AddSingleton<IBar, FooBar>();


Но проблема вполне решаема, достаточно лишь зарегистрировать вначале экземпляр FooBar и затем ссылаться на него:

services.AddSingleton<FooBar>();
services.AddSingleton<IFoo>(x => x.GetRequiredService<FooBar>());
services.AddSingleton<IBar>(x => x.GetRequiredService<FooBar>());

#полезное #tips
  • 👍 32
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 →