/// <summary> /// Finds the child with the specified browse name. /// </summary> protected override BaseInstanceState FindChild( ISystemContext context, QualifiedName browseName, bool createOrReplace, BaseInstanceState replacement) { if (QualifiedName.IsNull(browseName)) { return null; } BaseInstanceState instance = null; switch (browseName.Name) { case Opc.Ua.Fdi7.BrowseNames.ProtocolIdentifier: { if (createOrReplace) { if (ProtocolIdentifier == null) { if (replacement == null) { ProtocolIdentifier = new PropertyState<string>(this); } else { ProtocolIdentifier = (PropertyState<string>)replacement; } } } instance = ProtocolIdentifier; break; } case Opc.Ua.Fdi7.BrowseNames.ServiceProvider: { if (createOrReplace) { if (ServiceProvider == null) { if (replacement == null) { ServiceProvider = new ServerCommunicationGENERICServiceState(this); } else { ServiceProvider = (ServerCommunicationGENERICServiceState)replacement; } } } instance = ServiceProvider; break; } } if (instance != null) { return instance; } return base.FindChild(context, browseName, createOrReplace, replacement); }