/// <summary>The do parse.</summary> /// <param name="element">The element.</param> /// <param name="parserContext">The parser context.</param> /// <param name="builder">The builder.</param> protected override void DoParse(XmlElement element, ParserContext parserContext, ObjectDefinitionBuilder builder) { if (element.HasAttribute(ADDRESSES) && (element.HasAttribute(HOST_ATTRIBUTE) || element.HasAttribute(PORT_ATTRIBUTE))) { parserContext.ReaderContext.ReportFatalException(element, "If the 'addresses' attribute is provided, a connection factory can not have 'host' or 'port' attributes."); } NamespaceUtils.AddConstructorArgParentRefIfAttributeDefined(builder, element, CONNECTION_FACTORY_ATTRIBUTE); NamespaceUtils.SetValueIfAttributeDefined(builder, element, CHANNEL_CACHE_SIZE_ATTRIBUTE); NamespaceUtils.SetValueIfAttributeDefined(builder, element, HOST_ATTRIBUTE); NamespaceUtils.SetValueIfAttributeDefined(builder, element, PORT_ATTRIBUTE); NamespaceUtils.SetValueIfAttributeDefined(builder, element, USER_ATTRIBUTE); NamespaceUtils.SetValueIfAttributeDefined(builder, element, PASSWORD_ATTRIBUTE); NamespaceUtils.SetValueIfAttributeDefined(builder, element, VIRTUAL_HOST_ATTRIBUTE); // TODO: Currently no .NET equivalent to the Java Task Executor that can be used by RabbitMQ.Client // NamespaceUtils.SetReferenceIfAttributeDefined(builder, element, EXECUTOR_ATTRIBUTE); NamespaceUtils.SetValueIfAttributeDefined(builder, element, ADDRESSES); NamespaceUtils.SetValueIfAttributeDefined(builder, element, PUBLISHER_CONFIRMS); NamespaceUtils.SetValueIfAttributeDefined(builder, element, PUBLISHER_RETURNS); }