Esempio n. 1
0
        /// <summary>
        /// 根据配置文件中的设备ID初始化节点上下文。
        /// </summary>
        private void InitializeNodeContext(long nodeCode)
        {
            var deviceContext = new NodeContext();

            GlobalServices.NodeContext = deviceContext;

            var idInAppConfig = nodeCode;

            // 如果指定的ID小于等于零,则从配置文件中读取ID。
            if (idInAppConfig < 0)
            {
                var dictLocalSettings = ConfigurationManager.AppSettings;

                if (!string.IsNullOrWhiteSpace(dictLocalSettings["NodeCode"]))
                {
                    idInAppConfig = Convert.ToInt32(dictLocalSettings["NodeCode"]);
                }
                else
                {
                    throw new InvalidOperationException("在配置文件中没有找到NodeCode。");
                }
            }

            if (idInAppConfig < 0)
            {
                // 如果ID值无效,则根据IP初始化。
                deviceContext.Initialize();
            }
            else if (idInAppConfig > 0)
            {
                // 如果ID值有效,则使用指定的ID值初始化。
                deviceContext.Initialize((UInt32)idInAppConfig);
            }
            else
            {
                var customNode = SelectCustomNode();
                deviceContext.Initialize(customNode);
            }
        }