Browse Source

Added app.config template.

Configuration Templates are in there own sub category.
ConfigurationSection now uses a factory pattern to force the  name of the section.
Configuration templates are all sealed.

git-svn-id: svn://svn.sharpdevelop.net/sharpdevelop/branches/2.1@2501 1ccf3a8d-04fe-1044-b7c0-cef0b8235c61
shortcuts
Justin Dearing 19 years ago
parent
commit
028cc78585
  1. 3
      data/templates/file/CSharp/CSharp.ConfigurationElement.xft
  2. 5
      data/templates/file/CSharp/CSharp.ConfigurationElementCollection.xft
  3. 7
      data/templates/file/CSharp/CSharp.ConfigurationSection.xft
  4. 17
      data/templates/file/CSharp/CSharp.EmptyClass.xft
  5. 2
      data/templates/file/CSharp/ConfigurationElementCollection.cs
  6. 89
      data/templates/file/CSharp/ConfigurationSection.cs
  7. 34
      data/templates/file/Misc/AppConfigFile.xft

3
data/templates/file/CSharp/CSharp.ConfigurationElement.xft

@ -1,9 +1,10 @@ @@ -1,9 +1,10 @@
<?xml version="1.0"?>
<Template author="Justin Dearing" version="1.1">
<Template author="Justin Dearing" version="1.2">
<Config
name = "${res:Templates.File.ConfigurationElement.Name}"
icon = "C#.File.NewClass"
category = "C#"
subcategory = "Configuration Classes"
defaultname = "Class${Number}.cs"
language = "C#"/>
<Description>${res:Templates.File.ConfigurationElement.Description}</Description>

5
data/templates/file/CSharp/CSharp.ConfigurationElementCollection.xft

@ -1,9 +1,10 @@ @@ -1,9 +1,10 @@
<?xml version="1.0"?>
<Template author="Justin Dearing" version="1.1">
<Template author="Justin Dearing" version="1.2">
<Config
name = "${res:Templates.File.ConfigurationElementCollection.Name}"
icon = "C#.File.NewClass"
category = "C#"
subcategory = "Configuration Classes"
defaultname = "Class${Number}.cs"
language = "C#"/>
<Description>${res:Templates.File.ConfigurationElementCollection.Description}</Description>
@ -19,7 +20,7 @@ @@ -19,7 +20,7 @@
-->
<Files>
<File name="${Path}/${FileNameWithoutExtension}Element.cs" language="C#" src="ConfigurationElement.cs" />
<File name="${Path}/${FileNameWithoutExtension}ElementCollection.cs" language="C#" src="ConfigurationElementCollection.cs" />
<File name="${Path}/${FileNameWithoutExtension}Collection.cs" language="C#" src="ConfigurationElementCollection.cs" />
</Files>
<AdditionalOptions/>
</Template>

7
data/templates/file/CSharp/CSharp.ConfigurationSection.xft

@ -1,9 +1,10 @@ @@ -1,9 +1,10 @@
<?xml version="1.0"?>
<Template author="Justin Dearing" version="1.1">
<Template author="Justin Dearing" version="1.2">
<Config
name = "${res:Templates.File.ConfigurationSection.Name}"
icon = "C#.File.NewClass"
category = "C#"
subcategory = "Configuration Classes"
defaultname = "Class${Number}.cs"
language = "C#"/>
<Description>${res:Templates.File.ConfigurationSection.Description}</Description>
@ -18,9 +19,7 @@ @@ -18,9 +19,7 @@
${ClassName} -> Class name (generally FileNameWithoutExtension w/o 'bad' characters)
-->
<Files>
<File name="${Path}/${FileNameWithoutExtension}Element.cs" language="C#" src="ConfigurationElement.cs" />
<File name="${Path}/${FileNameWithoutExtension}ElementCollection.cs" language="C#" src="ConfigurationElementCollection.cs" />
<File name="${Path}/${FileNameWithoutExtension}Section.cs" language="C#" src="ConfigurationSection.cs" />
<File name="${Path}/${FileNameWithoutExtension}Settings.cs" language="C#" src="ConfigurationSection.cs" />
</Files>
<AdditionalOptions/>
</Template>

17
data/templates/file/CSharp/CSharp.EmptyClass.xft

@ -1,5 +1,5 @@ @@ -1,5 +1,5 @@
<?xml version="1.0"?>
<Template author="Mike Krueger" version="1.0">
<Template author="Mike Krueger" version="1.1">
<Config
name = "${res:Templates.File.EmptyClass.Name}"
@ -19,7 +19,18 @@ @@ -19,7 +19,18 @@
${Extension} -> Extension in the form ".cs"
${Path} -> Full path of the file
${ClassName} -> Class name (generally FileNameWithoutExtension w/o 'bad' characters)
-->
-->
<Properties>
<Property
name = "IsSealed"
localizedName = "${res:Templates.File.Properties.IsSealed}"
type = "System.Boolean"
defaultValue = "False"
category = "${res:Templates.File.Properties.ContextCategory}"
description = "${res:Templates.File.Properties.AddIFDEFTest.Description}"
/>
</Properties>
<Files>
<File name="${FullName}" language="C#"><![CDATA[${StandardHeader.C#}
@ -30,7 +41,7 @@ namespace ${StandardNamespace} @@ -30,7 +41,7 @@ namespace ${StandardNamespace}
/// <summary>
/// Description of ${ClassName}.
/// </summary>
public class ${ClassName}
public <% if (IsSealed) { %>sealed <% } %>class ${ClassName}
{
public ${ClassName}()
{

2
data/templates/file/CSharp/ConfigurationElementCollection.cs

@ -9,7 +9,7 @@ namespace ${StandardNamespace} @@ -9,7 +9,7 @@ namespace ${StandardNamespace}
/// <summary>
/// A collection of ${ClassName}Element(s).
/// </summary>
public class ${ClassName}Collection : ConfigurationElementCollection
public sealed class ${ClassName}Collection : ConfigurationElementCollection
{
#region Properties

89
data/templates/file/CSharp/ConfigurationSection.cs

@ -6,29 +6,98 @@ using System.Configuration; @@ -6,29 +6,98 @@ using System.Configuration;
namespace ${StandardNamespace}
{
/// <summary>
/// Configuration settings for ${ClassName}.
/// Configuration section &lt;${ClassName}&gt;
/// </summary>
public class ${ClassName}Section : ConfigurationSection
/// <remarks>
/// Assign properties to your child class that has the attribute
/// <c>[ConfigurationProperty]</c> to store said properties in the xml.
/// </remarks>
public sealed class ${ClassName}Settings : ConfigurationSection
{
System.Configuration.Configuration _Config;
#region ConfigurationProperties
/*
* Uncomment the following section and add a Configuration Collection
* from the with the file named ${ClassName}.cs
*/
// /// <summary>
// /// A custom XML section for an application's configuration file.
// /// </summary>
// [ConfigurationProperty("customSection", IsDefaultCollection = true)]
// public ${ClassName}Collection ${ClassName}
// {
// get { return (${ClassName}Collection) base["customSection"]; }
// }
/// <summary>
/// A custom XML section for an applications configuration file.
/// Represents attribute <c>exampleAttribute</c> of &lt;${ClassName}&gt;
/// </summary>
[ConfigurationProperty("customSection", IsDefaultCollection = true)]
public ${ClassName}Collection ${ClassName}
{
get { return (${ClassName}Collection) base["customSection"]; }
[ConfigurationProperty("exampleAttribute", DefaultValue="exampleValue")]
public string ExampleAttribute {
get { return (string) this["exampleAttribute"]; }
set { this["exampleAttribute"] = value; }
}
#endregion
/// <summary>
/// Default Constructor.
/// Private Constructor used by our factory method.
/// </summary>
public PlaneDisasterSection () : base () {
//Allow this section to be stored in user.app. By default this is forbidden.
private ${ClassName}Settings () : base () {
// Allow this section to be stored in user.app. By default this is forbidden.
this.SectionInformation.AllowExeDefinition =
ConfigurationAllowExeDefinition.MachineToLocalUser;
}
#region Public Methods
/// <summary>
/// Saves the configuration to the config file.
/// </summary>
public void Save() {
_Config.Save();
}
#endregion
#region Static Members
/// <summary>
/// Gets the current applications &lt;${ClassName}&gt; section.
/// </summary>
/// <param name="ConfigLevel">
/// The &lt;ConfigurationUserLevel&gt; that the config file
/// is retrieved from.
/// </param>
/// <returns>
/// The configuration file's &lt;${ClassName}&gt; section.
/// </returns>
public static ${ClassName}Settings GetSection (ConfigurationUserLevel ConfigLevel) {
/*
* This class is setup using a factory pattern that forces you to
* name the section &lt;${ClassName}&gt; in the config file.
* If you would prefer to be able to specify the name of the section,
* then remove this method and mark the constructor public.
*/
System.Configuration.Configuration Config = ConfigurationManager.OpenExeConfiguration
(ConfigLevel);
${ClassName}Settings o${ClassName}Settings;
o${ClassName}Settings =
(${ClassName}Settings)Config.GetSection("${ClassName}Settings");
if (o${ClassName}Settings == null) {
o${ClassName}Settings = new ${ClassName}Settings();
Config.Sections.Add("${ClassName}Settings", o${ClassName}Settings);
}
o${ClassName}Settings._Config = Config;
return o${ClassName}Settings;
}
#endregion
}
}

34
data/templates/file/Misc/AppConfigFile.xft

@ -0,0 +1,34 @@ @@ -0,0 +1,34 @@
<?xml version="1.0"?>
<Template author="Justin Dearing" version="1.0">
<Config
name = "${res:Templates.File.Xml.AppConfig.Name}"
icon = "Icons.32x32.XMLFileIcon"
category = "${res:Templates.File.Categories.Misc}"
defaultname = "app.config"
language = "XML"/>
<Description>${res:Templates.File.Xml.AppConfigFile.Description}</Description>
<Files>
<File name="${FullName}" language="XML"><![CDATA[<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<connectionStrings>
<!-- Example connection to a SQL Server Database on localhost. -->
<!-- <add name="ExampleConnectionString"
connectionString="Data Source=.;Initial Catalog=DBName;Integrated Security=True"
providerName="System.Data.SqlClient" /> -->
</connectionStrings>
<appSettings>
<!-- access these values via the property:
System.Configuration.ConfigurationManager.AppSettings[key]
-->
<add key="Setting1" value="Very" />
<add key="Setting2" value="Easy" />
</appSettings>
</configuration>
]]>
</File>
</Files>
<AdditionalOptions/>
</Template>
Loading…
Cancel
Save