public static ReqAndHierL1 Create( System.String l1Field2, ImmutableObjectGraph.Optional <System.String> l1Field1 = default(ImmutableObjectGraph.Optional <System.String>)) { var identity = Optional.For(NewIdentity()); return(DefaultInstance.WithFactory( l1Field1: Optional.For(l1Field1.GetValueOrDefault(DefaultInstance.L1Field1)), l1Field2: Optional.For(l1Field2), identity: Optional.For(identity.GetValueOrDefault(DefaultInstance.Identity)))); }