Exemple #1
0
        private int GetCurrentConnections()
        {
            if (Context.IsCoreRuntime)
            {
                return(0);
            }

            var connectionGroupListObject       = TargetObject.ReadObjectField("m_ConnectionGroupList");
            var connectionGroupListProxy        = new HashtableProxy(Context, connectionGroupListObject);
            var connectionGroupListKeyValuePair = connectionGroupListProxy.GetKeyValuePair();

            int result = 0;

            foreach (var connectionGroupItem in connectionGroupListKeyValuePair)
            {
                var connectionListObject = connectionGroupItem.Value.ReadObjectField("m_ConnectionList");
                var connectionListProxy  = new ArrayListProxy(Context, connectionListObject);
                result += connectionListProxy.Count;
            }

            return(result);
        }
Exemple #2
0
        public IEnumerable <ConnectionProxy> GetConnections()
        {
            if (Context.IsCoreRuntime)
            {
                throw new CoreRuntimeNotSupportedException();
            }

            // TODO join logic with GetCurrentConnections
            var connectionGroupListObject = TargetObject.ReadObjectField("m_ConnectionGroupList");
            var connectionGroupListProxy  = new HashtableProxy(Context, connectionGroupListObject);

            var connectionGroupListKeyValuePair = connectionGroupListProxy.GetKeyValuePair();

            foreach (var connectionGroupItem in connectionGroupListKeyValuePair)
            {
                var connectionListProxy = new ArrayListProxy(Context, connectionGroupItem.Value.ReadObjectField("m_ConnectionList"));

                foreach (var connectionObject in connectionListProxy.GetItems())
                {
                    yield return(new ConnectionProxy(Context, connectionObject));
                }
            }
        }
Exemple #3
0
        public IReadOnlyDictionary <string, string[]> GetHeaders()
        {
            var entriesArrayObject = TargetObject
                                     .ReadObjectField("m_InnerCollection") // NameValueCollection
                                     .ReadObjectField("_entriesArray");    // ArrayList

            var entriesArrayProxy = new ArrayListProxy(Context, entriesArrayObject);

            var result = new Dictionary <string, string[]>();

            foreach (var headerObject in entriesArrayProxy.GetItems())
            {
                var headerName = headerObject.ReadStringField("Key");

                var itemsArrayObject = headerObject.ReadObjectField("Value").ReadObjectField("_items");
                var itemsArrayProxy  = new ArrayProxy(Context, itemsArrayObject);

                var values = itemsArrayProxy.GetStringArray();

                result.Add(headerName, values);
            }

            return(result);
        }