Sono nuovo a Unity e sto provando a scrivere una logica Unity che inizializza e registra/risolve un'istanza singleton dell'oggetto Email in modo che possa essere utilizzata su molti altri oggetti, un esempio sotto è OperationEntity.Unity Singleton Code
Così quando è registrato popola il singleton Email con alcuni valori da un file di configurazione, quindi ogni volta che viene creata un'istanza di OperationEntity (nel mio caso viene deserializzata) utilizza lo stesso singleton Email. Quindi tutta la logica del mio client deve essere deserializzare OperationEntity e chiamare PerformAction() - con l'istanza dell'email gestita da Unity.
public interface IEmail
{
string FromName { get; set; }
string FromEmailAddress { get; set; }
}
public class Email : IEmail
{
public string FromName { get; set; }
public string FromEmailAddress { get; set; }
public Email(string fromName, string fromEmailAddress)
{
FromName = fromName;
FromEmailAddress = fromEmailAddress;
}
}
public class OperationEntity
{
private readonly IEmail _email;
public int OperationId { get; set; }
public string OperationName { get; set; }
public string ToAddress { get; set; }
public OperationEntity(IEmail email)
{
_email = email;
}
public void PerformAction()
{
_email.ToAddress = ToAddress;
_email.Body = "Some email body";
_email.Deliver();
}
}
Qualsiasi aiuto sarebbe apprezzato a ottenere questo codice Unità di lavorare
public static void Register(IUnityContainer container)
{
container
.RegisterType<IEmail, Email>(
new InjectionFactory(c => new Email(
"To Name",
"[email protected]")));
var email = container.Resolve<IEmail>();
container.RegisterType<OperationEntity>(
"email", new ContainerControlledLifetimeManager(),
new InjectionConstructor(email));
}
Stavo cercando aiuto con il codice C# Unity necessario per collegarlo. – Bern
Forse il [wiki su Singleton] (http://wiki.unity3d.com/index.php/Singleton) avrebbe potuto essere di qualche aiuto. – cregox
@cregox Questo è un collegamento a Unity3d, una libreria grafica. Questa è una domanda sul [Unity container] (https://msdn.microsoft.com/en-us/library/ff647202.aspx), un framework DI. – Andy