protected TKey GetId(IReflectorMetadataProvider request) { var code = request.GetAccesor().GetPropertyCode(nameof(IEntity <TKey> .Id)); var id = (TKey)request.GetAccesor().GetValue(request, code); return(id); }
public static Dictionary <int, object> ToCodedDictionary(this IReflectorMetadataProvider obj) { var data = new Dictionary <int, object>(); var accesor = obj.GetAccesor(); foreach (var code in accesor.GetPropertyCodes()) { data.Add(code, accesor.GetValue(obj, code)); } return(data); }
public static IReflectorMetadataProvider Merge(this IReflectorMetadataProvider obj, IDictionary <int, object> data) { var accesor = obj.GetAccesor(); foreach (var kv in data) { var code = kv.Key; var type = accesor.GetPropertyType(code); accesor.SetValue(obj, code, BinaryConvert.ConvertTo(type, kv.Value)); } return(obj); }
public static T Map <T>(this IReflectorMetadataProvider obj) where T : IReflectorMetadataProvider, new() { var accesor = obj.GetAccesor(); T clone = new T(); var targetAccesor = clone.GetAccesor(); foreach (var code in accesor.GetPropertyCodes()) { targetAccesor.SetValue(clone, code, accesor.GetValue(obj, code)); } return(clone); }
private void WriteObject(Stream stream, IReflectorMetadataProvider obj) { var accesor = obj.GetAccesor(); var props = accesor.GetPropertyCodes(); WriteLenght(stream, props.Length, Types.TYPE_CODED_MAP_8, Types.TYPE_CODED_MAP_16, Types.TYPE_CODED_MAP_32); foreach (var code in props) { WriteInteger(stream, code); Serialize(stream, accesor.GetValue(obj, code)); } }
public static void SetValue(this IReflectorMetadataProvider obj, string propertyName, object value) { var accesor = obj.GetAccesor(); accesor.SetValue(obj, accesor.GetPropertyCode(propertyName), value); }
public static object GetValue(this IReflectorMetadataProvider obj, string propertyName) { var accesor = obj.GetAccesor(); return(accesor.GetValue(obj, accesor.GetPropertyCode(propertyName))); }