System.Yaml.Serialization.ObjectMemberAccessor.FindFor C# (CSharp) Method

FindFor() public static method

指定した型へのアクセス方法を表すインスタンスを返す キャッシュに存在すればそれを返す キャッシュに存在しなければ新しく作って返す 作った物はキャッシュされる
public static FindFor ( Type type ) : ObjectMemberAccessor
type Type クラスまたは構造体を表す型情報
return ObjectMemberAccessor
        public static ObjectMemberAccessor FindFor(Type type)
        {
            if ( !MemberAccessors.ContainsKey(type) )
                MemberAccessors[type] = new ObjectMemberAccessor(type);
            return MemberAccessors[type];
        }

Usage Example

Beispiel #1
0
        private YamlMapping DictionaryToMap(object obj)
        {
            var accessor = ObjectMemberAccessor.FindFor(obj.GetType());
            var iter = ((IEnumerable)obj).GetEnumerator();
            var dictionary = map();
            Func <object, object> key = null, value = null;

            while (iter.MoveNext())
            {
                if (key == null)
                {
                    var keyvalue  = iter.Current.GetType();
                    var keyprop   = keyvalue.GetProperty("Key");
                    var valueprop = keyvalue.GetProperty("Value");
                    key   = o => keyprop.GetValue(o, new object[0]);
                    value = o => valueprop.GetValue(o, new object[0]);
                }
                dictionary.Add(
                    ObjectToNode(key(iter.Current), accessor.KeyType),
                    ObjectToNode(value(iter.Current), accessor.ValueType)
                    );
            }
            return(dictionary);
        }
All Usage Examples Of System.Yaml.Serialization.ObjectMemberAccessor::FindFor