|
//===============================================================================
// Microsoft patterns & practices Enterprise Library
// Data Access Application Block
//===============================================================================
// Copyright � Microsoft Corporation. All rights reserved.
// THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY
// OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT
// LIMITED TO THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
// FITNESS FOR A PARTICULAR PURPOSE.
//===============================================================================
using System;
using System.Collections.Generic;
using System.Text;
using Microsoft.Practices.EnterpriseLibrary.Configuration.Design;
using Microsoft.Practices.EnterpriseLibrary.Common.Configuration;
using Microsoft.Practices.EnterpriseLibrary.Configuration.Design.Properties;
using System.Configuration;
namespace Microsoft.Practices.EnterpriseLibrary.Data.Configuration.Design
{
sealed class ConnectionStringsSectionBuilder
{
private ConnectionStringsSectionNode connectionStringsSectionNode;
private ConnectionStringsSection connectionStringsSection;
IConfigurationUIHierarchy hierarchy;
public ConnectionStringsSectionBuilder(IServiceProvider serviceProvider, ConnectionStringsSectionNode connectionStringsSectionNode)
{
this.connectionStringsSectionNode = connectionStringsSectionNode;
hierarchy = ServiceHelper.GetCurrentHierarchy(serviceProvider);
}
public ConnectionStringsSection Build()
{
connectionStringsSection = new ConnectionStringsSection();
foreach (ConnectionStringSettingsNode node in connectionStringsSectionNode.Nodes)
{
BuildConnectionString(node);
}
return connectionStringsSection;
}
private void BuildConnectionString(ConnectionStringSettingsNode connectionStringNode)
{
connectionStringsSection.ConnectionStrings.Add(new ConnectionStringSettings(connectionStringNode.Name,
CreateConnectionString(connectionStringNode), connectionStringNode.ProviderName));
}
private string CreateConnectionString(ConnectionStringSettingsNode node)
{
List<ConnectionStringNameValuePair> pairs = new List<ConnectionStringNameValuePair>();
foreach (ParameterNode paramNode in hierarchy.FindNodesByType(node, typeof(ParameterNode)))
{
pairs.Add(new ConnectionStringNameValuePair(paramNode.Name, paramNode.Value));
}
return ConnectionStringParser.Build(pairs);
}
}
}
|
By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.
If a file you wish to view isn't highlighted, and is a text file (not binary), please
let us know and we'll add colourisation support for it.
I've been a programmer for longer than I care to remember. It all started with those BBC (model B's) at school, it all went down hill from there.....
This year, I am mostly coding in.. C# (WPF & WCF)
Blog Address http://markpm.blogspot.com