23 lines
732 B
C#

using System.Runtime.CompilerServices;
namespace VContainer.Internal
{
sealed class InstanceRegistrationBuilder : RegistrationBuilder
{
readonly object implementationInstance;
public InstanceRegistrationBuilder(object implementationInstance)
: base(implementationInstance.GetType(), Lifetime.Singleton)
{
this.implementationInstance = implementationInstance;
}
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public override Registration Build()
{
var spawner = new ExistingInstanceProvider(implementationInstance);
return new Registration(ImplementationType, Lifetime, InterfaceTypes, spawner);
}
}
}