Exemple #1
0
    /// <summary>
    /// Realizes implementation of a contract by mediating access to a <see cref="DelegateIndex"/>
    /// </summary>
    /// <typeparam name="TContract">The type of realized contract</typeparam>
    /// <returns></returns>
    internal static TContract Realize <TContract>(string implementationName, DelegateIndex delegates)
    {
        var implementation = new DelegatedContract(implementationName, delegates);
        var type           = DynamicContractImplementor.ImplementContract <TContract>(implementationName);

        return((TContract)Activator.CreateInstance(type, implementation));
    }
Exemple #2
0
    /// <summary>
    /// Realizes implementation of a user-defined contract by delegating through a <see cref="IDynamicContractMessenger"/> implementation
    /// </summary>
    /// <typeparam name="TContract">The type of realized contract</typeparam>
    /// <param name="messenger">The dynamic contract</param>
    /// <returns></returns>
    public static TContract Realize <TContract>(IDynamicContractMessenger messenger)
    {
        var type = DynamicContractImplementor.ImplementContract <TContract>(messenger.ImplementationName);

        return((TContract)Activator.CreateInstance(type, messenger));
    }