public static Cache CreateCache(Proj.NonBlittable arg) { Cache cache = new Cache(); try { cache.s1 = MarshalString.CreateCache(arg.s1); cache.s2 = MarshalString.CreateCache(arg.s2); cache.abi = new NonBlittable() { b = arg.b, s1 = MarshalString.GetAbi(cache.s1), s2 = MarshalString.GetAbi(cache.s2) }; return(cache); } catch (Exception) when(cache.Dispose()) { // Will never execute return(default);