Currently looking at DynamicProxy tutorials by Krzysztof Koźmic Any AOP type development is a candidate to be done by DP.
Excellent tutorial series...
Fun with bugs: Advanced Dictionary API
5 days ago
import Billy.CommonLibraries
import Billy.Application.Facade from Billy.Application.Facade.RC2
<properties>
<p1>00:02:00</p1>
<p2>SampleString</p2>
</properties>
p1 = "00:02:00"
p2= "SampleString"
# Properties
would be represented as:
<facility
id="factory_Support"
type="Castle.Facilities.FactorySupport.FactorySupportFacility, Castle.MicroKernel" />
facility FactorySupportFacility
would be represented as:
<component
id="exceptionHandler"
service="Billy.CommonTypes.IHandler, Billy.CommonTypes"
type="Billy.CommonTypes.Handler.Default, Billy.CommonTypes">
</component>
component "exceptionHandler", Billy.CommonTypes.IHandler, Billy.CommonTypes.Handler.Default
would be represented as:
<component
id="clock"
service="Billy.CommonTypes.IClock, Billy.CommonTypes"
type="Billy.CommonTypes.SystemClock, Billy.CommonTypes"
instance-accessor="Instance">
</component>
component "clock", Billy.CommonTypes.IClock, Billy.CommonTypes.SystemClock:
createUsing Instance
would be represented as:
<component
id="exceptionLogger"
service="Billy.CommonTypes.Exception.ILogger, Billy.CommonTypes"
type="Billy.CommonTypes.Exception.Logger.EventLog, Billy.CommonTypes">
<parameters>
<logName>#{exceptionLogName}</logName>
<source>#{exceptionLogSource}</source>
</parameters>
</component>
component "exceptionHandler", Billy.CommonTypes.Exception.ILogger, Billy.CommonTypes.Exception.Logger.EventLog:
logName = exceptionLogName
source = exceptionLogSource
would be represented as:
<component
id="sampleTypeInstantiatedWithFactory"
service="Billy.CommonTypes.IProviderFactory, Billy.CommonTypes"
type="Billy.CommonTypes.ProviderFactory, Billy.CommonTypes"
factoryId="mySampleFactory"
factoryCreate="GetSampleType">
</component>
component "sampleTypeInstantiatedWithFactory", Billy.CommonTypes.IProviderFactory, Billy.CommonTypes.ProviderFactory"
createUsing @mySampleFactory.GetSampleType
would be represented as:
<component
id="eventingBroker"
service="Billy.CommonTypes.Eventing.IBroker, Billy.CommonTypes"
type="Billy.CommonTypes.Eventing.Broker, Billy.CommonTypes">
<subscribers>
<subscriber
id="subscriber1"
event="Event1"
handler="OnEvent1Firing" />
<subscriber
id="subscriber2"
event="Event2"
handler="OnEvent2Firing" />
</subscribers>
</component>
component "eventingBroker", Billy.CommonTypes.Eventing.IBroker, Billy.CommonTypes.Eventing.Broker:
wireEvent Event1:
to @subscriber1.OnEvent1Firing
wireEvent Event2:
to @subscriber2.OnEvent2Firing
would be represented as:
<component
id="myStartableComponent"
type="Billy.CommonTypes.Type1, Billy.CommonTypes"
startable="true">
</component>
component "myStartableComponent", Billy.CommonTypes.Type1:
@startable = true
would be represented as:
<component
id="myTransientComponent"
type="Billy.CommonTypes.Type2, Billy.CommonTypes"
lifestyle="transient">
</component>
component "myTransientComponent", Billy.CommonTypes.Type2:
lifestyle Transient
would be represented as:
<component
id="myWCFClient"
type="Billy.Clients.IClient, Billy.Clients"
wcfEndpointConfiguration="MyClient">
</component>
component "myWCFClient", Billy.Clients.IClient:
wcfEndpointConfiguration="MyClient"
public class Class1: Base
{
private IExtraDependency c_extraDependency;
public IExtraDependency ExtraDependency
{
set { this.c_extraDependency= value; }
}
public Class1(Param1 p1) : base(p1)
{
this.c_extraDependency = new ConcreteExtraDependency();
}