예제 #1
0
        public string DehydrateValue(object obj, IGraph uow)
        {
            var typeName            = obj.GetType().AssemblyQualifiedName;
            IHasHydrationMap hasMap = obj as IHasHydrationMap;
            var map = hasMap.GetHydrationMap();

            Condition.Requires(map).IsNotNull();
            var data = map.DehydrateValue(obj, uow);

            return(LengthEncoder.LengthEncodeList(typeName, data));
        }
예제 #2
0
        public object HydrateValue(string nodeText, IGraph uow)
        {
            var list = LengthEncoder.LengthDecodeList(nodeText);

            Condition.Requires(list).HasLength(2);

            Type cType = TheTypeLocator.Instance.Locator.FindAssemblyQualifiedType(list[0]);

            Condition.Requires(cType).IsNotNull();
            var obj = ReflectionUtil.CreateUninitializedObject(cType);
            IHasHydrationMap hasMap = obj as IHasHydrationMap;
            var map = hasMap.GetHydrationMap();

            map.HydrateValue(obj, list[1], uow);
            return(obj);
        }