本文整理汇总了C#中CommandBase.GetType方法的典型用法代码示例。如果您正苦于以下问题:C# CommandBase.GetType方法的具体用法?C# CommandBase.GetType怎么用?C# CommandBase.GetType使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CommandBase
的用法示例。
在下文中一共展示了CommandBase.GetType方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: Send
public void Send(CommandBase command)
{
var handlers = this.GetCommandActions(command.GetType()).ToList();
if (handlers.Any())
{
if (handlers.Count() != 1) throw new InvalidOperationException("cannot send to more than one handler");
handlers.First().AsDynamic().Handle(command);
((IDisposable)handlers.First()).Dispose();
}
else
{
throw new InvalidOperationException("no handler registered");
}
}
示例2: MakeArray
private static object[] MakeArray(ConstructorInfo constructorInfo, JObject arguments, CommandBase command)
{
var parameters = constructorInfo.GetParameters();
List<object> args = new List<object>();
foreach (var parameter in parameters)
{
if (parameter.ParameterType == command.GetType())
{
args.Add(command);
continue;
}
if (arguments[parameter.Name] == null) return null;
var token = arguments[parameter.Name];
var arg = token.ToObject(parameter.ParameterType, new CustomSerializerSettings());
args.Add(arg);
}
return args.ToArray();
}
示例3: Enqueue
public void Enqueue(CommandBase asyncCommand)
{
if (asyncCommand == null)
{
throw new ArgumentNullException("asyncCommand");
}
var msg = new Message
{
Body = asyncCommand,
Label = asyncCommand.GetType().FullName,
Formatter = _formatter
};
using (msg)
{
_innerQueue.Send(msg);
}
}