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(); //1/builder.RegisterType().PropertiesAutowired(); //2/builder.RegisterType() //2/ .WithProperty("Parent", new Parent()); //3/builder.Register(c => //3/{ //3/ var child = new Child(); //3/ child.SetParent(c.Resolve()); //3/ return child; //3/}); builder.RegisterType() .OnActivated(e => { var p = e.Context.Resolve(); e.Instance.SetParent(p); }); var container = builder.Build(); var parent = container.Resolve().Parent; Console.WriteLine(parent); } } }