Advertisement
CAPCHIK

Untitled

Jul 18th, 2018
79
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 1.36 KB | None | 0 0
  1. using System;
  2. using System.Dynamic;
  3. using System.Linq;
  4.  
  5. namespace ConsoleApp2
  6. {
  7.     class Program
  8.     {
  9.         static void Main(string[] args)
  10.         {
  11.             Console.WriteLine("Hello World!");
  12.  
  13.             var data = new DataClass
  14.             {
  15.                 Date = DateTime.Now,
  16.                 Title = "Some tile",
  17.                 Lolks = 3
  18.             };
  19.             dynamic cover = new Cover(data);
  20.             Console.WriteLine(cover.Get5OldestPersonsInMoscow());
  21.             Console.ReadLine();
  22.         }
  23.     }
  24.  
  25.  
  26.     class Cover : DynamicObject
  27.     {
  28.         private readonly object inner;
  29.         private readonly Type innerType;
  30.  
  31.         public Cover(object inner)
  32.         {
  33.             this.inner = inner;
  34.             this.innerType = inner.GetType();
  35.         }
  36.  
  37.         public override bool TryGetMember(GetMemberBinder binder, out object result)
  38.         {
  39.             result = default;
  40.             var methodInfo = innerType.GetProperty(binder.Name);
  41.             if (methodInfo == null) return false;
  42.             result = methodInfo.GetValue(inner) ?? "No Data";
  43.             return true;
  44.         }
  45.     }
  46.  
  47.     class DataClass
  48.     {
  49.         public string Title { get; set; }
  50.         public int Lolks { get; set; }
  51.         public string Description { get; set; }
  52.         public DateTime Date { get; set; }
  53.     }
  54.    
  55. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement