Пример #1
0
        /// <summary>
        ///   ��������� ���������� ��������� � ����������.
        /// </summary>
        /// <param name = "iface">���������� ���������, ������� ����� ��������.</param>
        /// <param name = "name">�������� ����������.</param>
        /// <remarks>
        ///   � �������� �������� ���������� ������������ �������� � <paramref name = "name" /> ���.
        ///   ����� ���������� ���������� � ���������� ��� ������������� ��������� ���.
        /// </remarks>
        /// <exception cref = "ArgumentNullException"><paramref name = "iface" /> �������� <c>null</c>.</exception>
        /// <exception cref = "ArgumentNullException"><paramref name = "name" /> �������� <c>null</c>.</exception>
        /// <exception cref = "InterfaceAlreadyAttachedToDeviceException">��������� ��� �������� � ����������.</exception>
        /// <exception cref = "InterfaceNameMustBeUniqueException">��� ���������� �� ��������� � �������� ����������.</exception>
        public virtual void AddInterface(IInterface iface, string name)
        {
            if (iface.Device != null)
                throw new InterfaceAlreadyAttachedToDeviceException (iface.Name);

            if (this.interfaces.ContainsKey (name))
                throw new InterfaceNameMustBeUniqueException (name, this.Name);

            if (this.OnBeforeAddInterface != null) {
                try {
                    this.OnBeforeAddInterface.Invoke (this, iface);
                }
                catch {}
            }

            this.interfaces.Add (name, iface);
            iface.SetName (name);
            iface.SetDevice (this);
        }