I have looked at the dryIoc documentation and for whatever the reason.
I cannot find a way to register a singleton with constructor with parameter
I have the following
public class MainActivity //no interface
{
//etc... omitted for brevity
}
public class SampleClass : ISampleClass
{
private readonly Activity mainActivity;
public SampleClass(Activity mainActivity)
{
this.mainActivity = mainActivity;
}
}
public interface ISampleClass
{
//etc... omitted for brevity
}
//registration
//usually when I have a constructor with no params I do as follows:
container.Register<ISampleClass,SampleClass>(Reuse.Singleton);
container.Register<ISampleClass,SampleClass>(Reuse.Singleton);
container.UseInstance(mainActivity);
question How do I register the above when SampleClass takes a param as a constructor?
I tried as follows but does not compile
container.Register<ISampleClass>(Made.Of(() => new SampleClass(mainActivity));
container.Register<SampleClass>(made: Parameters.Of.Type<MainActivity>(Reuse.Singleton));
container.RegisterDelegate<ISampleClass>(
_ => new SampleClass(mainActivity),
Reuse.Singleton);
or
container.Register<ISampleClass, SampleClass>(
Reuse.Singleton,
made: Parameters.Of.Type<Activity>(_ => mainActivity));