internal ControllerConnection(TcAdsClient client) { _client = client; _declarationSpace = new DeclarationSpace(this); _infoLoader = _client.CreateSymbolInfoLoader(); _infoLoader.GetFirstSymbol(true); _symbols = _infoLoader.GetSymbols(forceReload: true); }
internal TcAdsSymbolInfo GetSymbolFrom(TcAdsSymbolInfoCollection symbols, string name) { foreach (var subname in GetPrefixes(name)) { var sym = symbols.Cast <TcAdsSymbolInfo>().Where(s => s.ShortName == subname).SingleOrDefault(); if (sym != null) { if (name == subname) { return(sym); } else { var resiudalName = name.Substring(subname.Length + 1); return(GetSymbolFrom(sym.SubSymbols, resiudalName)); } } } return(null); }