Skip to content

Instantly share code, notes, and snippets.

View sandrinodimattia's full-sized avatar
🏠
Working from home

Sandrino Di Mattia sandrinodimattia

🏠
Working from home
View GitHub Profile
public class NetFwMgr : DynamicComBase
{
/// <summary>
/// Default constructor.
/// </summary>
public NetFwMgr()
{
// Initialize the COM object.
Type fwMgrType = Type.GetTypeFromProgID("HNetCfg.FwMgr");
base.comObj = Activator.CreateInstance(fwMgrType);
@sandrinodimattia
sandrinodimattia / gist:3162122
Created July 23, 2012 05:43
ServerConfigurationSection
public class ServerConfigurationSection : ConfigurationSection, IServerConfiguration
{
[ConfigurationProperty("server", IsRequired = true)]
public string Server
{
get { return (string)this["server"]; }
set { this["server"] = value; }
}
[ConfigurationProperty("port", IsRequired = false)]
@sandrinodimattia
sandrinodimattia / gist:3162123
Created July 23, 2012 05:43
IServerConfiguration
public interface IServerConfiguration
{
int Port { get; set; }
string Server { get; set; }
}
@sandrinodimattia
sandrinodimattia / gist:3162125
Created July 23, 2012 05:43
ServerConfiguration app.config
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<section name="srvConfig" type="Sandrino.MyApplication.ServerConfigurationSection, Sandrino.MyApplication"/>
</configSections>
<srvConfig server="sandrino.loc" port="1986"/>
</configuration>
@sandrinodimattia
sandrinodimattia / gist:3162127
Created July 23, 2012 05:44
ConfigurationProviderBase
public abstract class ConfigurationProviderBase<TSection, TException>
where TSection : ConfigurationSection
where TException : Exception, new()
{
/// <summary>
/// Name of the section to read from the app.config.
/// </summary>
private string sectionName;
/// <summary>
@sandrinodimattia
sandrinodimattia / gist:3162128
Created July 23, 2012 05:44
ServerConfigurationProvider
public class ServerConfigurationProvider : ConfigurationProviderBase<ServerConfigurationSection, ServerConfigurationMissingException>, IServerConfigurationProvider
{
public ServerConfigurationProvider()
: base("srvConfig")
{
}
/// <summary>
/// Read the configuration and just return the interface.
@sandrinodimattia
sandrinodimattia / gist:3162129
Created July 23, 2012 05:44
IServerConfigurationProvider
public interface IServerConfigurationProvider
{
IServerConfiguration Read();
}
@sandrinodimattia
sandrinodimattia / gist:3162130
Created July 23, 2012 05:45
ConfigurationModule
public class ConfigurationModule : StandardModule
{
public override void Load()
{
Bind<IServerConfigurationProvider>().To<ServerConfigurationProvider>();
}
}
@sandrinodimattia
sandrinodimattia / gist:3162131
Created July 23, 2012 05:45
IServerConfigurationProvider sample
class Program
{
static void Main(string[] args)
{
using (IKernel krn = new StandardKernel())
{
// Create bindings.
krn.Load(new ConfigurationModule());
// Get the provider and read the app.config.
@sandrinodimattia
sandrinodimattia / gist:3162133
Created July 23, 2012 05:45
RegisterConfiguration IServerConfigurationProvider
private void RegisterConfiguration(string filename)
{
krn = new StandardKernel(new InlineModule(m => m
.Bind<IServerConfigurationProvider>()
.ToMethod<IServerConfigurationProvider>(
(e) =>
{
ServerConfigurationProvider config = new ServerConfigurationProvider();
config.SetConfigurationFile(filename);
return config;