Add project files.

This commit is contained in:
2025-07-06 17:26:05 +02:00
parent 8edf3708d8
commit 0f7207523a
42 changed files with 1657 additions and 0 deletions

View File

@ -0,0 +1,40 @@
using FactoryPattern.Samples;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace FactoryPattern.Factories;
public static class GenerateClassWithDataFactoryExtension
{
public static void AddGenericClassWithDataFactory(this IServiceCollection services)
{
services.AddTransient<IUserData, UserData>();
services.AddSingleton<Func<IUserData>>(x => () => x.GetService<IUserData>()!);
services.AddSingleton<IUserDataFactory, UserDataFactory>();
}
}
public interface IUserDataFactory
{
IUserData Create(string name);
}
public class UserDataFactory : IUserDataFactory
{
private readonly Func<IUserData> _factory;
public UserDataFactory(Func<IUserData> factory)
{
_factory = factory;
}
public IUserData Create(string name)
{
var output = _factory();
output.Name = name;
return output;
}
}