public static ImmutableInstanceWrapper <TRoot, TRoot> Set <TRoot, T>(this TRoot source, Expression <Func <TRoot, T> > expression, Func <TRoot, T> valueFunc) where TRoot : class, IImmutable { var wrapper = new RootWrapper <TRoot>(source); wrapper.Target.Set(expression, valueFunc); return(wrapper.Target); }
public static ImmutableListWrapper <TRoot, T> With <TRoot, T>(this TRoot source, Expression <Func <TRoot, ImmutableList <T> > > expression) where TRoot : class, IImmutable where T : class, IImmutable { var wrapper = new RootWrapper <TRoot>(source); return(wrapper.Target.With(expression)); }
public static IReflector CreateRootReflector <T> (T value) where T : new() { if (value == null) { return(null); } var root = new RootWrapper <T> (value); return(CreateReflector(root.ToString(), root)); }
public static IReflector CreateRootReflector <T> () where T : new() { var root = new RootWrapper <T> (); return(CreateReflector(root.ToString(), root)); }