public static void Main(string[] args) { Expression <Func <object, object> > exp = x => ((MyClass)x).Value.Length; var m = new MyClass { Value = "ssdf", /*Nested = new MyClass { * Value = "asd" * }*/ }; RUtils <MyClass> .TrySet(m, "Nested.Nested.Nested.Value", "fdg"); RUtils <MyClass> .TryGet(m, "Nested.Nested.Nested.Value", out var value); RUtils <MyClass> .Set(obj, "Value", "asd"); RUtils <MyClass> .Get(obj, "Value"); var summary = BenchmarkRunner.Run <RUtils_Benchmarks>(new Config()); Console.WriteLine(); Console.WriteLine("\nString value set and then get"); var runCount = summary.Reports.Length;// / 2; foreach (var report in summary.Reports.Take(runCount).OrderBy(x => x.ResultStatistics.Median)) { var ns = $"{report.ResultStatistics.Median:N1} ns"; var spase = new string(' ', 10 - ns.Length); Console.WriteLine($"{ns}{spase}{Info(report)}"); } /* * Console.WriteLine("\nString value set and then get"); * foreach (var report in summary.Reports.Skip(runCount).Take(runCount).OrderBy(x => x.ResultStatistics.Median)) { * var ns = $"{report.ResultStatistics.Median:N1} ns"; * var spase = new string(' ', 10 - ns.Length); * * Console.WriteLine($"{ns}{spase}{Info(report)}"); * }*/ /* * Console.WriteLine("\nString value set and then get"); * foreach (var report in summary.Reports.Skip(16).OrderBy(x => x.ResultStatistics.Median)) { * var ns = $"{report.ResultStatistics.Median:N1} ns"; * var spase = new string(' ', 10 - ns.Length); * * Console.WriteLine($"{ns}{spase}{Info(report)}"); * } */ Console.WriteLine(); Console.ReadLine(); }
public string REtilsTrySetValue() { RUtils <MyClass> .TrySet(obj, "Value", "asd"); RUtils <MyClass> .TryGet(obj, "Value", out object value); return((string)value); }
/// <summary> /// Returns whole <paramref name="entity"/>, represented as sequence of <typeparamref name="TParameter"/>. /// </summary> /// <returns>IEnumerable (sequence) of TParameter</returns> protected virtual IEnumerable <TParameter> ParametersFrom <TEntity>(IEntityInfo info, TEntity entity) where TEntity : class { return(info.PersistedProperties.Select(x => { object value; if (!RUtils <TEntity> .TryGet(entity, x.Key, out value)) { throw new InvalidOperationException($"Entity of type {entity.GetType()} should contain property '{x.Key}', " + "but in some reason value or that property could not be getted."); } var criterion = new DataCriterion { Name = x.Key, Type = x.Value.PropertyType, Value = value }; return ParameterWith(info, criterion); })); }