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); }
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)); } } }
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); }