karmabot/JetKarmaBot/Services/LogInfo.cs
2019-11-16 18:08:32 +00:00

31 lines
1.0 KiB
C#

using System;
using System.Linq;
using NLog;
using Perfusion;
namespace JetKarmaBot
{
public class LogInfo : ObjectInfo
{
public override ObjectInfo Clone() => new LogInfo();
public override object GetInstance(IContainer c, Type requester = null)
{
return LogManager.GetLogger(requester != null ? getTypeName(requester) : "<type unspecified>");
}
private string getTypeName(Type t)
{
return (t.DeclaringType == null ? t.Namespace + "." + t.Name : getTypeName(t.DeclaringType) + "." + t.Name)
+ (t.GenericTypeArguments.Length > 0 ? "<" + string.Join(",", t.GenericTypeArguments.Select(getTypeName)) + ">" : "");
}
}
public class VerbInfo : ObjectInfo
{
public override ObjectInfo Clone() => new VerbInfo();
public override object GetInstance(IContainer c, Type requester = null)
{
return c.ResolveObject(new VerbCommandRouter(requester != null ? requester.Name : "<type unspecified>"));
}
}
}