/
githubmirror
/
aspnetcore
Обзор
Документация
Войти
/
githubmirror
/
aspnetcore
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
src/SignalR/perf/Microbenchmarks/TestBinder.cs
63 строки
2 KB
Pranav K
Enforce warnings for unused usings (#39280)
04 янв 2022, 00:26
Не верифицирован
04 янв 2022, 00:26
667f068
Код
Авторство
О чём код?
// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. using Microsoft.AspNetCore.SignalR.Protocol; namespace Microsoft.AspNetCore.SignalR.Microbenchmarks; public class TestBinder : IInvocationBinder { private readonly Type[] _paramTypes; private readonly Type _returnType; public TestBinder(HubMessage expectedMessage) { switch (expectedMessage) { case StreamInvocationMessage i: _paramTypes = i.Arguments?.Select(a => a?.GetType() ?? typeof(object))?.ToArray(); break; case InvocationMessage i: _paramTypes = i.Arguments?.Select(a => a?.GetType() ?? typeof(object))?.ToArray(); break; case StreamItemMessage s: _returnType = s.Item?.GetType() ?? typeof(object); break; case CompletionMessage c: _returnType = c.Result?.GetType() ?? typeof(object); break; } } public TestBinder() : this(null, null) { } public TestBinder(Type[] paramTypes) : this(paramTypes, null) { } public TestBinder(Type returnType) : this(null, returnType) { } public TestBinder(Type[] paramTypes, Type returnType) { _paramTypes = paramTypes; _returnType = returnType; } public IReadOnlyList<Type> GetParameterTypes(string methodName) { if (_paramTypes != null) { return _paramTypes; } throw new InvalidOperationException("Unexpected binder call"); } public Type GetReturnType(string invocationId) { if (_returnType != null) { return _returnType; } throw new InvalidOperationException("Unexpected binder call"); } public Type GetStreamItemType(string streamId) { throw new NotImplementedException(); } }