Skip to content

Latest commit

 

History

History
45 lines (40 loc) · 1.14 KB

EXAMPLES_ParameterInfoExtensions.md

File metadata and controls

45 lines (40 loc) · 1.14 KB

Back to Package Contents

Is<T>(string)

Suppose you expect a specific parameter type and name.

Instead of

void Process(ParameterInfo parameter)
{
    if (
        parameter != null
        &&
        parameter.ParameterType == typeof(string)
        &&
        String.Equals(parameter.Name, "foo", StringComparison.Ordinal)
    )
    {
    }
}

you can write

void Process(ParameterInfo parameter)
{
    if (parameter.Is<string>("foo"))
    {
    }
}

E.g. you want Autofac to automatically inject an instance of Serilog.ILogger that is specific to the target class and also you want to enforce the following convention for that constructor parameter:

  • The name must be logger.
using Autofac;
using EgonsoftHU.Extensions.Bcl;
using Serilog;

var resolvedParameter =
    new ResolvedParameter(
        (parameter, context) => parameter.Is<ILogger>("logger"),
        (parameter, context) => Log.Logger.ForContext(parameter.Member.DeclaringType)
    );