Files
AutoFacSamples/AutoFacSamples2/Program.cs
2020-11-29 21:29:19 +01:00

59 lines
1.3 KiB
C#

using Autofac;
using System;
namespace AutoFacSamples2
{
public class Parent
{
public override string ToString()
{
return "I am your father";
}
}
public class Child
{
public string Name { get; set; }
public Parent Parent { get; set; }
public void SetParent(Parent parent)
{
Parent = parent;
}
}
internal class Program
{
static void Main(string[] args)
{
var builder = new ContainerBuilder();
builder.RegisterType<Parent>();
//1/builder.RegisterType<Child>().PropertiesAutowired();
//2/builder.RegisterType<Child>()
//2/ .WithProperty("Parent", new Parent());
//3/builder.Register(c =>
//3/{
//3/ var child = new Child();
//3/ child.SetParent(c.Resolve<Parent>());
//3/ return child;
//3/});
builder.RegisterType<Child>()
.OnActivated(e =>
{
var p = e.Context.Resolve<Parent>();
e.Instance.SetParent(p);
});
var container = builder.Build();
var parent = container.Resolve<Child>().Parent;
Console.WriteLine(parent);
}
}
}