string SomeProperty { get; set; }
public string SomeProperty { get; set; } = "non-initialized";
public class FakeAProxy : A, IA
get => ActualState.SomeProperty;
set => ActualState.SomeProperty = value;
internal A ActualState { get; set;} = new A { SomeProperty = "initialized" };
public static void Main()
var fakeProxy = new FakeAProxy();
Console.Write("fakeProxy.SomeProperty: ");
Console.WriteLine(fakeProxy.SomeProperty);
Console.Write("iProxy.SomeProperty: ");
Console.WriteLine(iProxy.SomeProperty);
Console.Write("aProxy.SomeProperty: ");
Console.WriteLine(aProxy.SomeProperty);