diff --git a/.github/scripts/api_surface/ApiSurface.csproj b/.github/scripts/api_surface/ApiSurface.csproj
new file mode 100644
index 0000000..1500202
--- /dev/null
+++ b/.github/scripts/api_surface/ApiSurface.csproj
@@ -0,0 +1,16 @@
+
+
+ Exe
+ net10.0
+ disable
+ enable
+ 2.0.0-preview.3
+ $(NoWarn);CS0618;JSONRPC0001;JSONRPC0002;JSONRPC0003
+
+
+
+
+
+
+
+
diff --git a/.github/scripts/api_surface/Program.cs b/.github/scripts/api_surface/Program.cs
new file mode 100644
index 0000000..d972cd5
--- /dev/null
+++ b/.github/scripts/api_surface/Program.cs
@@ -0,0 +1,87 @@
+using System.Reflection;
+using System.Text;
+
+// Dumps the public API surface of the four assemblies as sorted text, one member per line, so two versions diff.
+var names = new[] { "AustinHarris.JsonRpc", "AustinHarris.JsonRpc.AspNetCore", "AustinHarris.JsonRpc.SystemTextJson", "AustinHarris.JsonRpc.Newtonsoft" };
+var sb = new StringBuilder();
+foreach (var name in names)
+{
+ var asm = Assembly.Load(name);
+ var an = asm.GetName();
+ sb.AppendLine($"## {an.Name} {an.Version} PublicKeyToken={Convert.ToHexString(an.GetPublicKeyToken() ?? Array.Empty()).ToLowerInvariant()}");
+ var informational = asm.GetCustomAttribute()?.InformationalVersion ?? "";
+ sb.AppendLine($" informational={informational.Split('+')[0]}");
+ foreach (var t in asm.GetExportedTypes().OrderBy(t => t.FullName, StringComparer.Ordinal))
+ {
+ if (t.IsNested && !(t.IsNestedPublic || t.IsNestedFamily || t.IsNestedFamORAssem)) continue;
+ string kind = t.IsInterface ? "interface" : t.IsEnum ? "enum" : t.IsValueType ? "struct" : t.IsSubclassOf(typeof(Delegate)) ? "delegate" : t.IsAbstract && t.IsSealed ? "static class" : t.IsAbstract ? "abstract class" : t.IsSealed ? "sealed class" : "class";
+ var bases = new List();
+ if (t.BaseType != null && t.BaseType != typeof(object) && t.BaseType != typeof(ValueType) && t.BaseType != typeof(Enum) && t.BaseType != typeof(MulticastDelegate)) bases.Add(t.BaseType.FullName ?? t.BaseType.Name);
+ bases.AddRange(t.GetInterfaces().Where(i => i.IsPublic || i.IsNestedPublic).Select(i => i.FullName ?? i.Name).OrderBy(x => x, StringComparer.Ordinal));
+ sb.AppendLine($"{kind} {t.FullName}{(bases.Count > 0 ? " : " + string.Join(", ", bases) : "")}");
+ if (t.IsEnum)
+ {
+ foreach (var v in Enum.GetNames(t)) sb.AppendLine($" {v} = {Convert.ToInt64(Enum.Parse(t, v))}");
+ continue;
+ }
+ var flags = BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.Static | BindingFlags.DeclaredOnly;
+ var lines = new List();
+ foreach (var m in t.GetMembers(flags))
+ {
+ if (!Visible(m)) continue;
+ if (m is MethodInfo mi && mi.IsSpecialName) continue; // property/event accessors, operators listed via the property
+ string prefix = m switch { ConstructorInfo => "ctor", MethodInfo => "method", PropertyInfo => "property", FieldInfo => "field", EventInfo => "event", Type => "nested", _ => m.MemberType.ToString() };
+ string text = m switch
+ {
+ PropertyInfo p => $"{TypeName(p.PropertyType)} {p.Name}{Indexer(p)} {{ {(p.GetMethod != null && Visible(p.GetMethod) ? "get; " : "")}{(p.SetMethod != null && Visible(p.SetMethod) ? "set; " : "")}}}",
+ FieldInfo f => $"{(f.IsStatic ? "static " : "")}{(f.IsInitOnly ? "readonly " : "")}{(f.IsLiteral ? "const " : "")}{TypeName(f.FieldType)} {f.Name}",
+ EventInfo e => $"{TypeName(e.EventHandlerType)} {e.Name}",
+ ConstructorInfo c => $"{(c.IsStatic ? "static " : "")}{t.Name}({Params(c.GetParameters())})",
+ MethodInfo mm => $"{(mm.IsStatic ? "static " : "")}{(mm.IsAbstract ? "abstract " : mm.IsVirtual && !mm.IsFinal ? "virtual " : "")}{TypeName(mm.ReturnType)} {mm.Name}{Generic(mm)}({Params(mm.GetParameters())})",
+ Type nt => nt.Name,
+ _ => m.Name,
+ };
+ string access = Access(m);
+ lines.Add($" {access} {prefix} {text}");
+ }
+ foreach (var l in lines.OrderBy(x => x, StringComparer.Ordinal)) sb.AppendLine(l);
+ }
+}
+var outPath = args.Length > 0 ? args[0] : "api.txt";
+File.WriteAllText(outPath, sb.ToString());
+Console.WriteLine("written " + outPath);
+
+static bool Visible(MemberInfo m) => m switch
+{
+ MethodBase mb => mb.IsPublic || mb.IsFamily || mb.IsFamilyOrAssembly,
+ FieldInfo f => f.IsPublic || f.IsFamily || f.IsFamilyOrAssembly,
+ PropertyInfo p => (p.GetMethod != null && Visible(p.GetMethod)) || (p.SetMethod != null && Visible(p.SetMethod)),
+ EventInfo e => e.AddMethod != null && Visible(e.AddMethod),
+ Type t => t.IsNestedPublic || t.IsNestedFamily || t.IsNestedFamORAssem,
+ _ => false,
+};
+static string Access(MemberInfo m) => m switch
+{
+ MethodBase mb => mb.IsPublic ? "public" : "protected",
+ FieldInfo f => f.IsPublic ? "public" : "protected",
+ PropertyInfo p => (p.GetMethod?.IsPublic ?? false) || (p.SetMethod?.IsPublic ?? false) ? "public" : "protected",
+ EventInfo e => e.AddMethod.IsPublic ? "public" : "protected",
+ Type t => t.IsNestedPublic ? "public" : "protected",
+ _ => "?",
+};
+static string TypeName(Type t)
+{
+ if (t.IsByRef) return "ref " + TypeName(t.GetElementType());
+ if (t.IsArray) return TypeName(t.GetElementType()) + "[]";
+ if (t.IsGenericParameter) return t.Name;
+ if (t.IsGenericType)
+ {
+ var def = t.GetGenericTypeDefinition();
+ string baseName = (def.FullName ?? def.Name).Split('`')[0];
+ return baseName + "<" + string.Join(", ", t.GetGenericArguments().Select(TypeName)) + ">";
+ }
+ return t.FullName ?? t.Name;
+}
+static string Params(ParameterInfo[] ps) => string.Join(", ", ps.Select(p => $"{(p.IsOut ? "out " : p.ParameterType.IsByRef && p.IsIn ? "in " : "")}{TypeName(p.ParameterType)} {p.Name}{(p.HasDefaultValue ? " = " + (p.DefaultValue ?? "null") : "")}"));
+static string Generic(MethodInfo m) => m.IsGenericMethodDefinition ? "<" + string.Join(", ", m.GetGenericArguments().Select(a => a.Name)) + ">" : "";
+static string Indexer(PropertyInfo p) { var ps = p.GetIndexParameters(); return ps.Length == 0 ? "" : "[" + Params(ps) + "]"; }
diff --git a/.github/scripts/check_package_links.py b/.github/scripts/check_package_links.py
new file mode 100644
index 0000000..df91466
--- /dev/null
+++ b/.github/scripts/check_package_links.py
@@ -0,0 +1,249 @@
+#!/usr/bin/env python3
+"""Checks that a published version of the four packages points at pages that exist.
+
+For each of AustinHarris.JsonRpc, .AspNetCore, .SystemTextJson and .Newtonsoft at the given version, the script
+downloads the .nupkg from nuget.org, reads projectUrl, the repository url, releaseNotes and the package README out
+of the .nuspec, and requests every absolute http(s) URL found in them, expecting a 2xx. It then builds a scratch
+console project against the core package, prints the ObsoleteAttribute on Handler.RegisterFuction,
+Handler.UnRegisterFunction and Config.SetBeforeProcessHandler as the published assembly carries it, formats each
+UrlFormat with its DiagnosticId, requests the page and asserts the anchor id is in the HTML.
+
+Usage: python3 .github/scripts/check_package_links.py 2.0.0-preview.3 [--keep] (exit 1 on any failure)
+
+The check runs against nuget.org, so it is a release step (after the publish workflow has run and the flat
+container lists the version, which lags the push by a few minutes), not a pull-request gate.
+"""
+import io
+import os
+import re
+import shutil
+import subprocess
+import sys
+import tempfile
+import urllib.error
+import urllib.request
+import xml.etree.ElementTree as ET
+import zipfile
+
+PACKAGES = ["AustinHarris.JsonRpc", "AustinHarris.JsonRpc.AspNetCore", "AustinHarris.JsonRpc.SystemTextJson",
+ "AustinHarris.JsonRpc.Newtonsoft"]
+FLAT = "https://api.nuget.org/v3-flatcontainer/{id}/{version}/{id}.{version}.nupkg"
+OBSOLETE = { # member -> expected diagnostic id
+ "Handler.RegisterFuction": "JSONRPC0002",
+ "Handler.UnRegisterFunction": "JSONRPC0003",
+ "Config.SetBeforeProcessHandler": "JSONRPC0001",
+}
+URL = re.compile(r"https?://[^\s<>()\"'`\]]+")
+# Sample addresses in the READMEs (a host the reader runs) are not links to check.
+LOCAL = re.compile(r"^https?://(localhost|127\.0\.0\.1|\[::1\]|[^/]+\.(test|example|localhost)|example\.(com|org|net))(:\d+)?(/|$)", re.I)
+HEADERS = {"User-Agent": "JSON-RPC.NET package-link check (+https://github.com/Astn/JSON-RPC.NET)"}
+
+PROGRAM = r"""
+using System;
+using System.Linq;
+using System.Reflection;
+using AustinHarris.JsonRpc;
+
+static class Program
+{
+ static void Main()
+ {
+ const BindingFlags All = BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Static | BindingFlags.Instance;
+ foreach (var m in typeof(Handler).GetMethods(All).Where(m => m.Name == "RegisterFuction" || m.Name == "UnRegisterFunction")
+ .Concat(typeof(Config).GetMethods(All).Where(m => m.Name == "SetBeforeProcessHandler")))
+ foreach (var a in m.GetCustomAttributes())
+ Console.WriteLine(m.DeclaringType.Name + "." + m.Name + "|" + a.DiagnosticId + "|" + a.UrlFormat + "|" + a.Message);
+ Console.WriteLine("assembly|" + typeof(Handler).Assembly.GetName().FullName);
+ }
+}
+"""
+
+PROJECT = """
+
+ Exe
+ net8.0
+ disable
+
+
+
+
+
+"""
+
+NUGET_CONFIG = """
+
+
+
+
+
+
+"""
+
+failures = []
+
+
+def fail(message):
+ failures.append(message)
+ print("FAIL " + message)
+
+
+def fetch(url, binary=False):
+ req = urllib.request.Request(url, headers=HEADERS)
+ with urllib.request.urlopen(req, timeout=60) as r:
+ data = r.read()
+ return (r.status, data if binary else data.decode("utf-8", "replace"))
+
+
+def status(url):
+ try:
+ return fetch(url)[0]
+ except urllib.error.HTTPError as e:
+ return e.code
+ except Exception as e: # DNS, TLS, timeout
+ return str(e)
+
+
+def text(node):
+ return (node.text or "").strip() if node is not None else ""
+
+
+def strip_trailing(url):
+ return url.rstrip(".,;:!?)")
+
+
+def check_package(package, version, workdir):
+ print("== " + package + " " + version)
+ url = FLAT.format(id=package.lower(), version=version.lower())
+ try:
+ code, data = fetch(url, binary=True)
+ except urllib.error.HTTPError as e:
+ fail("%s: nupkg download %s -> %s" % (package, url, e.code))
+ return
+ path = os.path.join(workdir, package + "." + version + ".nupkg")
+ with open(path, "wb") as f:
+ f.write(data)
+ z = zipfile.ZipFile(io.BytesIO(data))
+ spec_name = [n for n in z.namelist() if n.endswith(".nuspec")][0]
+ root = ET.fromstring(z.read(spec_name))
+ ns = {"n": root.tag[1:].split("}")[0]} if root.tag.startswith("{") else {}
+ meta = root.find("n:metadata", ns) if ns else root.find("metadata")
+
+ def field(name):
+ return text(meta.find("n:" + name, ns) if ns else meta.find(name))
+
+ spec_version = field("version")
+ if spec_version != version:
+ fail("%s: nuspec version %s, expected %s" % (package, spec_version, version))
+ project_url = field("projectUrl")
+ repo = meta.find("n:repository", ns) if ns else meta.find("repository")
+ repo_url = repo.get("url") if repo is not None else ""
+ notes = field("releaseNotes")
+ readme_name = field("readme")
+ if not project_url:
+ fail(package + ": no projectUrl")
+ if not repo_url:
+ fail(package + ": no repository url")
+ if not notes:
+ fail(package + ": no releaseNotes")
+ if not readme_name:
+ fail(package + ": no readme")
+ readme = ""
+ else:
+ try:
+ readme = z.read(readme_name).decode("utf-8", "replace")
+ except KeyError:
+ fail("%s: readme %s not in the package" % (package, readme_name))
+ readme = ""
+ urls = []
+ for source, body in (("projectUrl", project_url), ("repository", repo_url), ("releaseNotes", notes), ("README", readme)):
+ for u in URL.findall(body):
+ u = strip_trailing(u)
+ if LOCAL.match(u):
+ continue
+ if u not in [x[1] for x in urls]:
+ urls.append((source, u))
+ print(" %d urls" % len(urls))
+ for source, u in urls:
+ s = status(u)
+ ok = isinstance(s, int) and 200 <= s < 300
+ print(" %s %s (%s)" % ("ok " if ok else "FAIL", u, source))
+ if not ok:
+ fail("%s: %s from %s -> %s" % (package, u, source, s))
+
+
+def check_obsoletions(version, workdir):
+ print("== obsolete members in the published core assembly")
+ scratch = os.path.join(workdir, "obsoletions")
+ os.makedirs(scratch, exist_ok=True)
+ with open(os.path.join(scratch, "Obsoletions.csproj"), "w", encoding="utf-8") as f:
+ f.write(PROJECT.format(version=version))
+ with open(os.path.join(scratch, "Program.cs"), "w", encoding="utf-8") as f:
+ f.write(PROGRAM)
+ with open(os.path.join(scratch, "nuget.config"), "w", encoding="utf-8") as f:
+ f.write(NUGET_CONFIG)
+ env = dict(os.environ, NUGET_PACKAGES=os.path.join(workdir, "packages"), DOTNET_CLI_TELEMETRY_OPTOUT="1", DOTNET_NOLOGO="1")
+ run = subprocess.run(["dotnet", "run", "--project", scratch, "-c", "Release"], capture_output=True, text=True, env=env)
+ if run.returncode != 0:
+ fail("scratch project failed:\n" + run.stdout[-3000:] + run.stderr[-3000:])
+ return
+ seen = {}
+ for line in run.stdout.splitlines():
+ parts = line.strip().split("|")
+ if parts[0] == "assembly":
+ print(" " + parts[1])
+ if "PublicKeyToken=null" in parts[1]:
+ fail("core assembly is not strong-named: " + parts[1])
+ continue
+ if len(parts) != 4:
+ continue
+ member, diag_id, url_format, message = parts
+ seen.setdefault(member, set()).add((diag_id, url_format))
+ for member, expected in OBSOLETE.items():
+ if member not in seen:
+ fail(member + ": no ObsoleteAttribute found")
+ continue
+ for diag_id, url_format in seen[member]:
+ if diag_id != expected:
+ fail("%s: DiagnosticId %s, expected %s" % (member, diag_id, expected))
+ continue
+ if not url_format:
+ fail(member + ": no UrlFormat")
+ continue
+ page = url_format.format(diag_id)
+ anchor = page.split("#", 1)[1] if "#" in page else ""
+ try:
+ code, html = fetch(page.split("#", 1)[0])
+ except urllib.error.HTTPError as e:
+ fail("%s: %s -> %s" % (member, page, e.code))
+ continue
+ has_anchor = anchor and ('id="%s"' % anchor) in html
+ print(" %s %s -> %s %s" % ("ok " if has_anchor else "FAIL", member, page, "anchor present" if has_anchor else "anchor missing"))
+ if not has_anchor:
+ fail("%s: anchor %s not in %s" % (member, anchor, page))
+
+
+def main():
+ args = [a for a in sys.argv[1:] if not a.startswith("--")]
+ keep = "--keep" in sys.argv
+ if len(args) != 1:
+ print(__doc__)
+ sys.exit(2)
+ version = args[0]
+ workdir = tempfile.mkdtemp(prefix="jsonrpc-links-")
+ try:
+ for package in PACKAGES:
+ check_package(package, version, workdir)
+ check_obsoletions(version, workdir)
+ finally:
+ if keep:
+ print("kept " + workdir)
+ else:
+ shutil.rmtree(workdir, ignore_errors=True)
+ if failures:
+ print("\n%d failure(s)" % len(failures))
+ sys.exit(1)
+ print("\nall package links and obsoletion anchors resolve for " + version)
+
+
+if __name__ == "__main__":
+ main()
diff --git a/docs/api-surface/2.0.0-preview.1.txt b/docs/api-surface/2.0.0-preview.1.txt
new file mode 100644
index 0000000..796ff33
--- /dev/null
+++ b/docs/api-surface/2.0.0-preview.1.txt
@@ -0,0 +1,600 @@
+## AustinHarris.JsonRpc 2.0.0.0 PublicKeyToken=
+ informational=2.0.0-preview.1
+class AustinHarris.JsonRpc.Client.InProcessClient
+ public ctor InProcessClient()
+ public method static System.Threading.Tasks.Task Invoke(System.String jsonrpc)
+static class AustinHarris.JsonRpc.Config
+ public method static System.Void SetBeforeProcessHandler(System.String sessionId, AustinHarris.JsonRpc.PreProcessHandler handler)
+ public method static System.Void SetErrorHandler(System.Func handler)
+ public method static System.Void SetErrorHandler(System.String sessionId, System.Func handler)
+ public method static System.Void SetParseErrorHandler(System.Func handler)
+ public method static System.Void SetParseErrorHandler(System.String sessionId, System.Func handler)
+ public method static System.Void SetPostProcessHandler(AustinHarris.JsonRpc.PostProcessHandler handler)
+ public method static System.Void SetPostProcessHandler(System.String sessionId, AustinHarris.JsonRpc.PostProcessHandler handler)
+ public method static System.Void SetPreProcessHandler(AustinHarris.JsonRpc.PreProcessHandler handler)
+ public method static System.Void SetPreProcessHandler(System.String sessionId, AustinHarris.JsonRpc.PreProcessHandler handler)
+ public method static System.Void SetSerializer(AustinHarris.JsonRpc.Serialization.JsonRpcSerializer serializer)
+ public method static System.Void SetSerializer(System.String sessionId, AustinHarris.JsonRpc.Serialization.JsonRpcSerializer serializer)
+ public method static System.Void SetVersionPolicy(System.String sessionId, System.Nullable policy)
+ public property AustinHarris.JsonRpc.JsonRpcVersionPolicy VersionPolicy { get; set; }
+ public property AustinHarris.JsonRpc.Serialization.JsonRpcSerializer Serializer { get; set; }
+ public property System.Boolean IncludeExceptionDetails { get; set; }
+sealed class AustinHarris.JsonRpc.Handler
+ public method AustinHarris.JsonRpc.JsonResponse Handle(AustinHarris.JsonRpc.JsonRequest Rpc, System.Object RpcContext = null)
+ public method System.Void Destroy()
+ public method System.Void RegisterFuction(System.String methodName, System.Collections.Generic.Dictionary parameterNameTypeMapping, System.Collections.Generic.Dictionary parameterNameDefaultValueMapping, System.Delegate implementation)
+ public method System.Void SetPostProcessHandler(AustinHarris.JsonRpc.PostProcessHandler handler)
+ public method System.Void SetPreProcessHandler(AustinHarris.JsonRpc.PreProcessHandler handler)
+ public method System.Void UnRegisterFunction(System.String methodName)
+ public method static AustinHarris.JsonRpc.Handler GetSessionHandler()
+ public method static AustinHarris.JsonRpc.Handler GetSessionHandler(System.String sessionId)
+ public method static AustinHarris.JsonRpc.JsonRpcException RpcGetAndRemoveRpcException()
+ public method static AustinHarris.JsonRpc.JsonRpcRequestId RpcRequestId()
+ public method static AustinHarris.JsonRpc.Serialization.JsonRpcIdKind RpcRequestIdKind()
+ public method static System.Object RpcContext()
+ public method static System.ReadOnlySpan RpcRequestIdRaw()
+ public method static System.String DefaultSessionId()
+ public method static System.Void DestroySession(System.String sessionId)
+ public method static System.Void RegisterInstance(System.String sessionID, System.Object instance)
+ public method static System.Void RpcSetException(AustinHarris.JsonRpc.JsonRpcException exception)
+ public property AustinHarris.JsonRpc.Handler DefaultHandler { get; }
+ public property AustinHarris.JsonRpc.SMD MetaData { get; set; }
+ public property AustinHarris.JsonRpc.Serialization.JsonRpcSerializer Serializer { get; set; }
+ public property System.Nullable VersionPolicy { get; set; }
+ public property System.String SessionId { get; }
+delegate AustinHarris.JsonRpc.Invocation.BoxedInvoker : System.ICloneable, System.Runtime.Serialization.ISerializable
+ public ctor BoxedInvoker(System.Object object, System.IntPtr method)
+ public method virtual System.IAsyncResult BeginInvoke(AustinHarris.JsonRpc.Serialization.JsonRpcRequestReader reader, System.Int32[] map, System.AsyncCallback callback, System.Object object)
+ public method virtual System.Object EndInvoke(System.IAsyncResult result)
+ public method virtual System.Object Invoke(AustinHarris.JsonRpc.Serialization.JsonRpcRequestReader reader, System.Int32[] map)
+sealed class AustinHarris.JsonRpc.Invocation.RpcMethod
+ public ctor RpcMethod()
+ public method static AustinHarris.JsonRpc.Invocation.RpcMethod FromDelegate(System.String name, System.Delegate implementation, System.String[] parameterNames = null, System.Collections.Generic.IDictionary defaults = null, AustinHarris.JsonRpc.RpcContextFlow contextFlow = None)
+ public method static AustinHarris.JsonRpc.Invocation.RpcMethod FromDelegate(System.String name, System.Delegate implementation, System.String[] parameterNames, System.Collections.Generic.IDictionary defaults)
+ public method static AustinHarris.JsonRpc.Invocation.RpcMethod FromMethod(System.String name, System.Reflection.MethodInfo method, System.Object target, System.String[] parameterNames = null, AustinHarris.JsonRpc.RpcContextFlow contextFlow = None)
+ public method static AustinHarris.JsonRpc.Invocation.RpcMethod FromMethod(System.String name, System.Reflection.MethodInfo method, System.Object target, System.String[] parameterNames)
+ public method static AustinHarris.JsonRpc.Invocation.RpcMethod FromMethod(System.String name, System.Reflection.MethodInfo method, System.Type serviceType, System.Func resolve, System.String[] parameterNames = null, AustinHarris.JsonRpc.RpcContextFlow contextFlow = None)
+ public property AustinHarris.JsonRpc.Invocation.BoxedInvoker InvokeBoxed { get; }
+ public property AustinHarris.JsonRpc.Invocation.RpcParameter[] Parameters { get; }
+ public property AustinHarris.JsonRpc.Invocation.StreamingInvoker Invoke { get; }
+ public property AustinHarris.JsonRpc.RpcContextFlow ContextFlow { get; }
+ public property System.Boolean ExpectsRefException { get; }
+ public property System.Boolean IsAsync { get; }
+ public property System.Int32 DefaultCount { get; }
+ public property System.String Name { get; }
+ public property System.Type ResultType { get; }
+ public property System.Type ReturnType { get; }
+sealed class AustinHarris.JsonRpc.Invocation.RpcParameter
+ public property System.Boolean HasDefault { get; }
+ public property System.Object DefaultValue { get; }
+ public property System.String Name { get; }
+ public property System.Type Type { get; }
+delegate AustinHarris.JsonRpc.Invocation.StreamingInvoker : System.ICloneable, System.Runtime.Serialization.ISerializable
+ public ctor StreamingInvoker(System.Object object, System.IntPtr method)
+ public method virtual System.IAsyncResult BeginInvoke(AustinHarris.JsonRpc.Serialization.JsonRpcRequestReader reader, System.Int32[] map, AustinHarris.JsonRpc.Serialization.JsonRpcSerializer serializer, System.Buffers.IBufferWriter output, System.AsyncCallback callback, System.Object object)
+ public method virtual System.Void EndInvoke(System.IAsyncResult result)
+ public method virtual System.Void Invoke(AustinHarris.JsonRpc.Serialization.JsonRpcRequestReader reader, System.Int32[] map, AustinHarris.JsonRpc.Serialization.JsonRpcSerializer serializer, System.Buffers.IBufferWriter output)
+struct AustinHarris.JsonRpc.Jsmn.JsmnCursor
+ public ctor JsmnCursor(System.ReadOnlySpan doc, AustinHarris.JsonRpc.Jsmn.JsmnToken[] tokens, System.Int32 index)
+ public field AustinHarris.JsonRpc.Jsmn.JsmnToken[] Tokens
+ public field System.Int32 Index
+ public field System.ReadOnlySpan Doc
+ public method System.Int32 Next()
+ public property System.Boolean IsNull { get; }
+ public property System.ReadOnlySpan Text { get; }
+ public property ref AustinHarris.JsonRpc.Jsmn.JsmnToken Token { get; }
+static class AustinHarris.JsonRpc.Jsmn.JsmnMapper
+ public method static System.Boolean ReadBoolean(ref AustinHarris.JsonRpc.Jsmn.JsmnCursor c)
+ public method static System.Char ReadChar(ref AustinHarris.JsonRpc.Jsmn.JsmnCursor c)
+ public method static System.DateTime ReadDateTime(ref AustinHarris.JsonRpc.Jsmn.JsmnCursor c)
+ public method static System.Decimal ReadDecimal(ref AustinHarris.JsonRpc.Jsmn.JsmnCursor c)
+ public method static System.Double ReadDouble(ref AustinHarris.JsonRpc.Jsmn.JsmnCursor c)
+ public method static System.Int32 ReadInt32(ref AustinHarris.JsonRpc.Jsmn.JsmnCursor c)
+ public method static System.Int64 ReadInt64(ref AustinHarris.JsonRpc.Jsmn.JsmnCursor c)
+ public method static System.Object ReadObject(ref AustinHarris.JsonRpc.Jsmn.JsmnCursor c, System.Type type)
+ public method static System.Single ReadSingle(ref AustinHarris.JsonRpc.Jsmn.JsmnCursor c)
+ public method static System.String ReadString(ref AustinHarris.JsonRpc.Jsmn.JsmnCursor c)
+ public method static System.UInt64 ReadUInt64(ref AustinHarris.JsonRpc.Jsmn.JsmnCursor c)
+ public method static System.Void WriteObject(System.Buffers.IBufferWriter w, System.Object value, System.Type declaredType, System.Int32 depth)
+static class AustinHarris.JsonRpc.Jsmn.JsmnReader`1
+ public field static readonly AustinHarris.JsonRpc.Jsmn.JsmnTokenReader Read
+sealed class AustinHarris.JsonRpc.Jsmn.JsmnRequestReader : AustinHarris.JsonRpc.Serialization.JsonRpcRequestReader
+ public ctor JsmnRequestReader(AustinHarris.JsonRpc.Serialization.JsonRpcSerializer serializer)
+ public method virtual System.Boolean ParamIsNull(System.Int32 i)
+ public method virtual System.Boolean Select(System.Int32 index)
+ public method virtual System.Boolean TryParse(System.ReadOnlyMemory utf8Document, out ref System.String error)
+ public method virtual System.Object ReadParam(System.Int32 i, System.Type type)
+ public method virtual System.ReadOnlySpan ParamNameUtf8(System.Int32 i)
+ public method virtual System.ReadOnlySpan ParamRaw(System.Int32 i)
+ public method virtual System.Void Release()
+ public method virtual T ReadParam(System.Int32 i)
+ public property AustinHarris.JsonRpc.Jsmn.JsmnTokenizer Tokenizer { get; }
+ public property AustinHarris.JsonRpc.Serialization.JsonRpcIdKind IdKind { get; }
+ public property AustinHarris.JsonRpc.Serialization.JsonRpcParamsKind ParamsKind { get; }
+ public property AustinHarris.JsonRpc.Serialization.JsonRpcVersionKind VersionKind { get; }
+ public property System.Boolean HasMethod { get; }
+ public property System.Boolean IsBatch { get; }
+ public property System.Int32 Count { get; }
+ public property System.Int32 ParamCount { get; }
+ public property System.Object IdValue { get; }
+ public property System.Object ParamsValue { get; }
+ public property System.ReadOnlyMemory Document { get; }
+ public property System.ReadOnlySpan IdRaw { get; }
+ public property System.ReadOnlySpan MethodUtf8 { get; }
+ public property System.String Method { get; }
+sealed class AustinHarris.JsonRpc.Jsmn.JsmnSerializer : AustinHarris.JsonRpc.Serialization.JsonRpcSerializer
+ public ctor JsmnSerializer()
+ public ctor JsmnSerializer(System.Boolean lenient)
+ public ctor JsmnSerializer(System.Boolean lenient, System.Int32 maxDepth)
+ public field static readonly AustinHarris.JsonRpc.Jsmn.JsmnSerializer Instance
+ public method virtual System.Object Read(System.ReadOnlySpan utf8Json, System.Type type)
+ public method virtual System.Void Write(System.Buffers.IBufferWriter output, System.Object value, System.Type type)
+ public method virtual System.Void Write(System.Buffers.IBufferWriter output, T value)
+ public method virtual T Read(System.ReadOnlySpan utf8Json)
+ public property System.Boolean Lenient { get; }
+ public property System.Int32 MaxDepth { get; }
+ public property System.String Name { get; }
+struct AustinHarris.JsonRpc.Jsmn.JsmnToken
+ public field AustinHarris.JsonRpc.Jsmn.JsmnType Type
+ public field System.Boolean Escaped
+ public field System.Boolean IsKey
+ public field System.Int32 End
+ public field System.Int32 Parent
+ public field System.Int32 Size
+ public field System.Int32 Start
+delegate AustinHarris.JsonRpc.Jsmn.JsmnTokenReader`1 : System.ICloneable, System.Runtime.Serialization.ISerializable
+ public ctor JsmnTokenReader`1(System.Object object, System.IntPtr method)
+ public method virtual System.IAsyncResult BeginInvoke(ref AustinHarris.JsonRpc.Jsmn.JsmnCursor cursor, System.AsyncCallback callback, System.Object object)
+ public method virtual T EndInvoke(ref AustinHarris.JsonRpc.Jsmn.JsmnCursor cursor, System.IAsyncResult result)
+ public method virtual T Invoke(ref AustinHarris.JsonRpc.Jsmn.JsmnCursor cursor)
+sealed class AustinHarris.JsonRpc.Jsmn.JsmnTokenizer
+ public ctor JsmnTokenizer()
+ public field System.Boolean Lenient
+ public field static const System.Int32 DefaultMaxDepth
+ public field static const System.Int32 ErrorDepth
+ public field static const System.Int32 ErrorInvalid
+ public field static const System.Int32 ErrorNoMemory
+ public field static const System.Int32 ErrorPartial
+ public method System.Int32 Parse(System.ReadOnlySpan js)
+ public method System.Int32 Skip(System.Int32 index)
+ public method System.Void Release()
+ public method static System.Boolean IsNull(System.ReadOnlySpan js, in ref AustinHarris.JsonRpc.Jsmn.JsmnToken tok)
+ public method static System.ReadOnlySpan RawJson(System.ReadOnlySpan js, in ref AustinHarris.JsonRpc.Jsmn.JsmnToken tok)
+ public method static System.ReadOnlySpan Slice(System.ReadOnlySpan js, in ref AustinHarris.JsonRpc.Jsmn.JsmnToken tok)
+ public property AustinHarris.JsonRpc.Jsmn.JsmnToken[] Tokens { get; }
+ public property System.Int32 MaxDepth { get; set; }
+ public property System.Int32 Position { get; }
+ public property System.Int32 TokenCount { get; }
+enum AustinHarris.JsonRpc.Jsmn.JsmnType : System.IComparable, System.IConvertible, System.IFormattable, System.ISpanFormattable
+ Undefined = 0
+ Object = 1
+ Array = 2
+ String = 3
+ Primitive = 4
+static class AustinHarris.JsonRpc.Jsmn.JsmnWriter`1
+ public field static readonly System.Action, T> Write
+class AustinHarris.JsonRpc.JsonRequest
+ public ctor JsonRequest()
+ public ctor JsonRequest(System.String method, System.Object pars, System.Object id)
+ public property System.Object Id { get; set; }
+ public property System.Object Params { get; set; }
+ public property System.String JsonRpc { get; }
+ public property System.String Method { get; set; }
+class AustinHarris.JsonRpc.JsonResponse
+ public ctor JsonResponse()
+ public property AustinHarris.JsonRpc.JsonRpcException Error { get; set; }
+ public property System.Object Id { get; set; }
+ public property System.Object Result { get; set; }
+ public property System.String JsonRpc { get; set; }
+class AustinHarris.JsonRpc.JsonResponse`1
+ public ctor JsonResponse`1()
+ public property AustinHarris.JsonRpc.JsonRpcException Error { get; set; }
+ public property System.Object Id { get; set; }
+ public property System.String JsonRpc { get; set; }
+ public property T Result { get; set; }
+sealed class AustinHarris.JsonRpc.JsonRpcCancellationAttribute : System.Attribute
+ public ctor JsonRpcCancellationAttribute()
+sealed class AustinHarris.JsonRpc.JsonRpcContext
+ public method static AustinHarris.JsonRpc.JsonRpcContext Current()
+ public method static AustinHarris.JsonRpc.JsonRpcRequestId CurrentRequestId()
+ public method static System.Void SetException(AustinHarris.JsonRpc.JsonRpcException exception)
+ public property System.Object Value { get; }
+class AustinHarris.JsonRpc.JsonRpcException : System.ApplicationException, System.Runtime.Serialization.ISerializable
+ public ctor JsonRpcException(System.Int32 code, System.String message, System.Object data)
+ public property System.Int32 code { get; set; }
+ public property System.Object data { get; set; }
+ public property System.String message { get; set; }
+sealed class AustinHarris.JsonRpc.JsonRpcMethodAttribute : System.Attribute
+ public ctor JsonRpcMethodAttribute(System.String jsonMethodName = )
+ public property AustinHarris.JsonRpc.RpcContextFlow ContextFlow { get; set; }
+ public property System.String JsonMethodName { get; }
+sealed class AustinHarris.JsonRpc.JsonRpcParamAttribute : System.Attribute
+ public ctor JsonRpcParamAttribute(System.String jsonParamName = )
+ public property System.String JsonParamName { get; }
+static class AustinHarris.JsonRpc.JsonRpcProcessor
+ public method static System.Byte[] ProcessBytes(System.String sessionId, System.ReadOnlySpan request, System.Object context = null, AustinHarris.JsonRpc.Serialization.JsonRpcSerializer serializer = null)
+ public method static System.String ProcessSync(AustinHarris.JsonRpc.Serialization.JsonRpcSerializer serializer, System.String jsonRpc, System.Object context = null)
+ public method static System.String ProcessSync(System.String jsonRpc, System.Object context = null)
+ public method static System.String ProcessSync(System.String sessionId, System.String jsonRpc, System.Object jsonRpcContext, AustinHarris.JsonRpc.Serialization.JsonRpcSerializer serializer = null)
+ public method static System.Threading.Tasks.Task ProcessAsync(System.String sessionId, System.Buffers.ReadOnlySequence request, System.Buffers.IBufferWriter output, System.Object context = null, AustinHarris.JsonRpc.Serialization.JsonRpcSerializer serializer = null, System.Threading.CancellationToken cancellationToken = null)
+ public method static System.Threading.Tasks.Task ProcessAsync(System.String sessionId, System.ReadOnlyMemory request, System.Buffers.IBufferWriter output, System.Object context = null, AustinHarris.JsonRpc.Serialization.JsonRpcSerializer serializer = null, System.Threading.CancellationToken cancellationToken = null)
+ public method static System.Threading.Tasks.Task ProcessAsync(System.String sessionId, System.ReadOnlySpan request, System.Buffers.IBufferWriter output, System.Object context = null, AustinHarris.JsonRpc.Serialization.JsonRpcSerializer serializer = null, System.Threading.CancellationToken cancellationToken = null)
+ public method static System.Threading.Tasks.Task Process(AustinHarris.JsonRpc.Serialization.JsonRpcSerializer serializer, System.String jsonRpc, System.Object context = null)
+ public method static System.Threading.Tasks.Task Process(System.String jsonRpc, System.Object context = null)
+ public method static System.Threading.Tasks.Task Process(System.String sessionId, System.String jsonRpc, System.Object context = null, AustinHarris.JsonRpc.Serialization.JsonRpcSerializer serializer = null)
+ public method static System.Threading.Tasks.Task ProcessAsync(System.String jsonRpc, System.Object context = null, System.Threading.CancellationToken cancellationToken = null)
+ public method static System.Threading.Tasks.Task ProcessAsync(System.String sessionId, System.String jsonRpc, System.Object context = null, AustinHarris.JsonRpc.Serialization.JsonRpcSerializer serializer = null, System.Threading.CancellationToken cancellationToken = null)
+ public method static System.Void Process(AustinHarris.JsonRpc.JsonRpcStateAsync async, System.Object context = null, AustinHarris.JsonRpc.Serialization.JsonRpcSerializer serializer = null)
+ public method static System.Void Process(System.String sessionId, AustinHarris.JsonRpc.JsonRpcStateAsync async, System.Object context = null, AustinHarris.JsonRpc.Serialization.JsonRpcSerializer serializer = null)
+ public method static System.Void Process(System.String sessionId, System.ReadOnlyMemory request, System.Buffers.IBufferWriter output, System.Object context = null, AustinHarris.JsonRpc.Serialization.JsonRpcSerializer serializer = null)
+ public method static System.Void Process(System.String sessionId, System.ReadOnlySpan request, System.Buffers.IBufferWriter output, System.Object context = null, AustinHarris.JsonRpc.Serialization.JsonRpcSerializer serializer = null)
+ public method static System.Void Process(System.String sessionId, in ref System.Buffers.ReadOnlySequence request, System.Buffers.IBufferWriter output, System.Object context = null, AustinHarris.JsonRpc.Serialization.JsonRpcSerializer serializer = null)
+struct AustinHarris.JsonRpc.JsonRpcRequestId : System.IEquatable`1[[AustinHarris.JsonRpc.JsonRpcRequestId, AustinHarris.JsonRpc, Version=2.0.0.0, Culture=neutral, PublicKeyToken=null]]
+ public method System.Boolean Equals(AustinHarris.JsonRpc.JsonRpcRequestId other)
+ public method System.Boolean TryGetInt64(out ref System.Int64 value)
+ public method System.Object ToObject()
+ public method System.String GetIntegerText()
+ public method System.String GetString()
+ public method System.Void WriteTo(System.Buffers.IBufferWriter output)
+ public method static AustinHarris.JsonRpc.JsonRpcRequestId FromInt64(System.Int64 value)
+ public method static AustinHarris.JsonRpc.JsonRpcRequestId FromObject(System.Object id)
+ public method static AustinHarris.JsonRpc.JsonRpcRequestId FromRaw(System.ReadOnlySpan raw)
+ public method static AustinHarris.JsonRpc.JsonRpcRequestId FromString(System.String value)
+ public method virtual System.Boolean Equals(System.Object obj)
+ public method virtual System.Int32 GetHashCode()
+ public method virtual System.String ToString()
+ public property AustinHarris.JsonRpc.JsonRpcRequestId Absent { get; }
+ public property AustinHarris.JsonRpc.JsonRpcRequestId Null { get; }
+ public property AustinHarris.JsonRpc.Serialization.JsonRpcIdKind Kind { get; }
+ public property System.Boolean IsAbsent { get; }
+ public property System.Boolean IsInteger { get; }
+ public property System.Boolean IsNull { get; }
+ public property System.Boolean IsString { get; }
+abstract class AustinHarris.JsonRpc.JsonRpcService
+ protected ctor JsonRpcService()
+ protected ctor JsonRpcService(System.Boolean autoBind)
+ protected ctor JsonRpcService(System.String sessionID)
+class AustinHarris.JsonRpc.JsonRpcStateAsync : System.IAsyncResult
+ public ctor JsonRpcStateAsync(System.AsyncCallback cb, System.Object extraData)
+ public property System.Boolean CompletedSynchronously { get; }
+ public property System.Boolean IsCompleted { get; }
+ public property System.Object AsyncState { get; }
+ public property System.String JsonRpc { get; set; }
+ public property System.String Result { get; set; }
+ public property System.Threading.WaitHandle AsyncWaitHandle { get; }
+enum AustinHarris.JsonRpc.JsonRpcVersionPolicy : System.IComparable, System.IConvertible, System.IFormattable, System.ISpanFormattable
+ Lenient = 0
+ Ignore = 1
+ Strict = 2
+class AustinHarris.JsonRpc.ParameterDefaultValue
+ public ctor ParameterDefaultValue(System.String name, System.Object value)
+ public property System.Object Value { get; }
+ public property System.String Name { get; }
+delegate AustinHarris.JsonRpc.PostProcessHandler : System.ICloneable, System.Runtime.Serialization.ISerializable
+ public ctor PostProcessHandler(System.Object object, System.IntPtr method)
+ public method virtual AustinHarris.JsonRpc.JsonRpcException EndInvoke(System.IAsyncResult result)
+ public method virtual AustinHarris.JsonRpc.JsonRpcException Invoke(AustinHarris.JsonRpc.JsonRequest request, AustinHarris.JsonRpc.JsonResponse response, System.Object context)
+ public method virtual System.IAsyncResult BeginInvoke(AustinHarris.JsonRpc.JsonRequest request, AustinHarris.JsonRpc.JsonResponse response, System.Object context, System.AsyncCallback callback, System.Object object)
+delegate AustinHarris.JsonRpc.PreProcessHandler : System.ICloneable, System.Runtime.Serialization.ISerializable
+ public ctor PreProcessHandler(System.Object object, System.IntPtr method)
+ public method virtual AustinHarris.JsonRpc.JsonRpcException EndInvoke(System.IAsyncResult result)
+ public method virtual AustinHarris.JsonRpc.JsonRpcException Invoke(AustinHarris.JsonRpc.JsonRequest request, System.Object context)
+ public method virtual System.IAsyncResult BeginInvoke(AustinHarris.JsonRpc.JsonRequest request, System.Object context, System.AsyncCallback callback, System.Object object)
+sealed class AustinHarris.JsonRpc.RpcBinding : System.IDisposable
+ public method System.Void Dispose()
+ public property System.Collections.Generic.IReadOnlyList Methods { get; }
+ public property System.String SessionId { get; }
+enum AustinHarris.JsonRpc.RpcContextFlow : System.IComparable, System.IConvertible, System.IFormattable, System.ISpanFormattable
+ None = 0
+ Flow = 1
+sealed class AustinHarris.JsonRpc.RpcInterfaceBindingOptions
+ public ctor RpcInterfaceBindingOptions()
+ public property AustinHarris.JsonRpc.RpcNameCasing Casing { get; set; }
+ public property System.Boolean Recursive { get; set; }
+ public property System.Func Include { get; set; }
+ public property System.Func NameRule { get; set; }
+ public property System.String Prefix { get; set; }
+ public property System.String Separator { get; set; }
+sealed class AustinHarris.JsonRpc.RpcInterfaceMethod
+ public property System.Reflection.MethodInfo Method { get; }
+ public property System.String DefaultName { get; }
+ public property System.String Leaf { get; }
+ public property System.String[] Path { get; }
+ public property System.Type Interface { get; }
+enum AustinHarris.JsonRpc.RpcNameCasing : System.IComparable, System.IConvertible, System.IFormattable, System.ISpanFormattable
+ Preserve = 0
+ CamelCase = 1
+class AustinHarris.JsonRpc.SMD
+ public ctor SMD()
+ public method static System.Boolean ContainsType(System.Collections.Generic.Dictionary jo)
+ public method static System.Int32 AddType(System.Collections.Generic.Dictionary jo)
+ public property AustinHarris.JsonRpc.SMDAdditionalParameters[] parameters { get; set; }
+ public property AustinHarris.JsonRpc.SMDServiceCollection Services { get; }
+ public property System.Boolean additonalParameters { get; set; }
+ public property System.Collections.Generic.Dictionary> Types { get; }
+ public property System.String envelope { get; set; }
+ public property System.String target { get; set; }
+ public property System.String transport { get; set; }
+class AustinHarris.JsonRpc.SMDAdditionalParameters
+ public ctor SMDAdditionalParameters(System.String parametername, System.Type type)
+ public property System.Int32 Type { get; set; }
+ public property System.Int32 __type { get; }
+ public property System.String Name { get; set; }
+ public property System.String __name { get; }
+ public property System.Type ObjectType { get; set; }
+class AustinHarris.JsonRpc.SMDResult
+ public ctor SMDResult(System.Type type)
+ public property System.Int32 Type { get; }
+ public property System.Int32 __type { get; }
+class AustinHarris.JsonRpc.SMDService
+ public ctor SMDService(System.String transport, System.String envelope, System.Collections.Generic.Dictionary parameters, System.Collections.Generic.Dictionary defaultValues, System.Delegate dele)
+ public field System.Delegate dele
+ public property AustinHarris.JsonRpc.Invocation.RpcMethod Method { get; }
+ public property AustinHarris.JsonRpc.ParameterDefaultValue[] defaultValues { get; }
+ public property AustinHarris.JsonRpc.SMDAdditionalParameters[] parameters { get; }
+ public property AustinHarris.JsonRpc.SMDResult returns { get; }
+ public property System.String envelope { get; }
+ public property System.String transport { get; }
+sealed class AustinHarris.JsonRpc.SMDServiceCollection : System.Collections.Generic.ICollection`1[[System.Collections.Generic.KeyValuePair`2[[System.String, System.Private.CoreLib, Version=10.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[AustinHarris.JsonRpc.SMDService, AustinHarris.JsonRpc, Version=2.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=10.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]], System.Collections.Generic.IDictionary`2[[System.String, System.Private.CoreLib, Version=10.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[AustinHarris.JsonRpc.SMDService, AustinHarris.JsonRpc, Version=2.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Collections.Generic.IEnumerable`1[[System.Collections.Generic.KeyValuePair`2[[System.String, System.Private.CoreLib, Version=10.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[AustinHarris.JsonRpc.SMDService, AustinHarris.JsonRpc, Version=2.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=10.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]], System.Collections.Generic.IReadOnlyCollection`1[[System.Collections.Generic.KeyValuePair`2[[System.String, System.Private.CoreLib, Version=10.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[AustinHarris.JsonRpc.SMDService, AustinHarris.JsonRpc, Version=2.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=10.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]], System.Collections.Generic.IReadOnlyDictionary`2[[System.String, System.Private.CoreLib, Version=10.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[AustinHarris.JsonRpc.SMDService, AustinHarris.JsonRpc, Version=2.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Collections.IEnumerable
+ public ctor SMDServiceCollection()
+ public method System.Boolean Contains(System.Collections.Generic.KeyValuePair item)
+ public method System.Boolean ContainsKey(System.String key)
+ public method System.Boolean Remove(System.Collections.Generic.KeyValuePair item)
+ public method System.Boolean Remove(System.String key)
+ public method System.Boolean TryGetValue(System.String key, out ref AustinHarris.JsonRpc.SMDService value)
+ public method System.Collections.Generic.IEnumerator> GetEnumerator()
+ public method System.Void Add(System.Collections.Generic.KeyValuePair item)
+ public method System.Void Add(System.String key, AustinHarris.JsonRpc.SMDService value)
+ public method System.Void Clear()
+ public method System.Void CopyTo(System.Collections.Generic.KeyValuePair[] array, System.Int32 arrayIndex)
+ public property AustinHarris.JsonRpc.SMDService Item[System.String key] { get; set; }
+ public property System.Boolean IsReadOnly { get; }
+ public property System.Collections.Generic.ICollection Values { get; }
+ public property System.Collections.Generic.ICollection Keys { get; }
+ public property System.Int32 Count { get; }
+sealed class AustinHarris.JsonRpc.Serialization.ExceptionInfo
+ public ctor ExceptionInfo()
+ public method static AustinHarris.JsonRpc.Serialization.ExceptionInfo ForResponse(System.Exception ex)
+ public method static AustinHarris.JsonRpc.Serialization.ExceptionInfo From(System.Exception ex)
+ public method static AustinHarris.JsonRpc.Serialization.ExceptionInfo From(System.Exception ex, System.Boolean includeDetails)
+ public property AustinHarris.JsonRpc.Serialization.ExceptionInfo InnerException { get; set; }
+ public property System.Int32 HResult { get; set; }
+ public property System.String ClassName { get; set; }
+ public property System.String Message { get; set; }
+ public property System.String Source { get; set; }
+ public property System.String StackTraceString { get; set; }
+static class AustinHarris.JsonRpc.Serialization.JsonFramer
+ public method static System.Boolean TryReadDocument(ref System.Buffers.ReadOnlySequence buffer, out ref System.Buffers.ReadOnlySequence document)
+ public method static System.Int32 FindDocumentEnd(System.ReadOnlySpan buffer)
+class AustinHarris.JsonRpc.Serialization.JsonRpcBindException : System.Exception, System.Runtime.Serialization.ISerializable
+ public ctor JsonRpcBindException(System.String message)
+ public ctor JsonRpcBindException(System.String message, System.Exception inner)
+enum AustinHarris.JsonRpc.Serialization.JsonRpcIdKind : System.IComparable, System.IConvertible, System.IFormattable, System.ISpanFormattable
+ Absent = 0
+ Null = 1
+ Integer = 2
+ String = 3
+ Invalid = 4
+enum AustinHarris.JsonRpc.Serialization.JsonRpcParamsKind : System.IComparable, System.IConvertible, System.IFormattable, System.ISpanFormattable
+ Absent = 0
+ Array = 1
+ Object = 2
+ Invalid = 3
+abstract class AustinHarris.JsonRpc.Serialization.JsonRpcRequestReader
+ protected ctor JsonRpcRequestReader()
+ public method abstract System.Boolean ParamIsNull(System.Int32 i)
+ public method abstract System.Boolean Select(System.Int32 index)
+ public method abstract System.Boolean TryParse(System.ReadOnlyMemory utf8Document, out ref System.String error)
+ public method abstract System.Object ReadParam(System.Int32 i, System.Type type)
+ public method abstract System.ReadOnlySpan ParamNameUtf8(System.Int32 i)
+ public method abstract System.ReadOnlySpan ParamRaw(System.Int32 i)
+ public method abstract System.Void Release()
+ public method abstract T ReadParam(System.Int32 i)
+ public property AustinHarris.JsonRpc.Serialization.JsonRpcIdKind IdKind { get; }
+ public property AustinHarris.JsonRpc.Serialization.JsonRpcParamsKind ParamsKind { get; }
+ public property AustinHarris.JsonRpc.Serialization.JsonRpcVersionKind VersionKind { get; }
+ public property System.Boolean HasMethod { get; }
+ public property System.Boolean IsBatch { get; }
+ public property System.Int32 Count { get; }
+ public property System.Int32 ParamCount { get; }
+ public property System.Object IdValue { get; }
+ public property System.Object ParamsValue { get; }
+ public property System.ReadOnlyMemory Document { get; }
+ public property System.ReadOnlySpan IdRaw { get; }
+ public property System.ReadOnlySpan MethodUtf8 { get; }
+ public property System.String Method { get; }
+abstract class AustinHarris.JsonRpc.Serialization.JsonRpcSerializer
+ protected ctor JsonRpcSerializer()
+ public method System.Object Deserialize(System.String json, System.Type type)
+ public method System.String Serialize(System.Object value, System.Type type)
+ public method System.String Serialize(T value)
+ public method T Deserialize(System.String json)
+ public method abstract System.Object Read(System.ReadOnlySpan utf8Json, System.Type type)
+ public method abstract System.Void Write(System.Buffers.IBufferWriter output, System.Object value, System.Type type)
+ public method abstract System.Void Write(System.Buffers.IBufferWriter output, T value)
+ public method abstract T Read(System.ReadOnlySpan utf8Json)
+ public method virtual AustinHarris.JsonRpc.Serialization.JsonRpcRequestReader CreateReader()
+ public property System.Boolean Lenient { get; }
+ public property System.Int32 MaxDepth { get; }
+ public property System.String Name { get; }
+enum AustinHarris.JsonRpc.Serialization.JsonRpcVersionKind : System.IComparable, System.IConvertible, System.IFormattable, System.ISpanFormattable
+ Absent = 0
+ V2 = 1
+ Other = 2
+sealed class AustinHarris.JsonRpc.Serialization.MethodNotFoundInfo
+ public ctor MethodNotFoundInfo(System.String method)
+ public method System.Void WriteTo(System.Buffers.IBufferWriter output)
+ public method virtual System.String ToString()
+ public property System.String Method { get; }
+sealed class AustinHarris.JsonRpc.Serialization.ParameterErrorInfo
+ public ctor ParameterErrorInfo(AustinHarris.JsonRpc.Invocation.RpcParameter parameter, System.Int32 index, System.Exception cause)
+ public ctor ParameterErrorInfo(System.String parameter, System.Int32 index, System.Type expectedType, System.Exception cause)
+ public method System.Void WriteTo(System.Buffers.IBufferWriter output)
+ public method static System.Boolean IsConversionFailure(System.Exception cause)
+ public method static System.String Describe(System.Type type)
+ public method virtual System.String ToString()
+ public property System.Exception Cause { get; }
+ public property System.Int32 Index { get; }
+ public property System.String ExpectedType { get; }
+ public property System.String Message { get; }
+ public property System.String Parameter { get; }
+ public property System.String Reason { get; }
+sealed class AustinHarris.JsonRpc.Serialization.PooledByteBufferWriter : System.Buffers.IBufferWriter`1[[System.Byte, System.Private.CoreLib, Version=10.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]], System.IDisposable
+ public ctor PooledByteBufferWriter(System.Int32 initialCapacity = 4096)
+ public method System.Byte[] ToArray()
+ public method System.Memory GetMemory(System.Int32 sizeHint = 0)
+ public method System.Span GetSpan(System.Int32 sizeHint = 0)
+ public method System.Void Advance(System.Int32 count)
+ public method System.Void Clear()
+ public method System.Void CopyTo(System.Buffers.IBufferWriter destination)
+ public method System.Void Dispose()
+ public method System.Void RemoveAt(System.Int32 position)
+ public method System.Void Rewind(System.Int32 position)
+ public method System.Void Write(System.Byte b)
+ public method System.Void Write(System.ReadOnlySpan bytes)
+ public method virtual System.String ToString()
+ public property System.ArraySegment WrittenSegment { get; }
+ public property System.Int32 WrittenCount { get; }
+ public property System.ReadOnlyMemory WrittenMemory { get; }
+ public property System.ReadOnlySpan WrittenSpan { get; }
+static class AustinHarris.JsonRpc.Serialization.Utf8Json
+ public field static const System.Int32 MaxDateTimeLength
+ public field static const System.String NaNText
+ public field static const System.String NegativeInfinityText
+ public field static const System.String PositiveInfinityText
+ public method static AustinHarris.JsonRpc.Serialization.JsonRpcIdKind ClassifyId(System.ReadOnlySpan raw)
+ public method static System.Boolean EqualsIgnoreAsciiCase(System.ReadOnlySpan a, System.ReadOnlySpan b)
+ public method static System.Boolean TryParseNonFinite(System.ReadOnlySpan text, out ref System.Double value)
+ public method static System.Boolean TryParseNonFinite(System.String text, out ref System.Double value)
+ public method static System.Int32 FormatDateTime(System.Span dest, System.DateTime value)
+ public method static System.Int32 FormatDateTimeOffset(System.Span dest, System.DateTimeOffset value)
+ public method static System.Int32 Hash(System.ReadOnlySpan bytes)
+ public method static System.Int32 Unescape(System.ReadOnlySpan contents, System.Span dest)
+ public method static System.Object IdToObject(System.ReadOnlySpan raw, AustinHarris.JsonRpc.Serialization.JsonRpcIdKind kind)
+ public method static System.String DecodeString(System.ReadOnlySpan contents)
+ public method static System.String NonFiniteText(System.Double value)
+ public method static System.String ToStringUtf8(System.ReadOnlySpan utf8)
+ public method static System.Void WriteAscii(System.Buffers.IBufferWriter w, System.ReadOnlySpan chars)
+ public method static System.Void WriteBool(AustinHarris.JsonRpc.Serialization.PooledByteBufferWriter w, System.Boolean value)
+ public method static System.Void WriteBool(System.Buffers.IBufferWriter w, System.Boolean value)
+ public method static System.Void WriteByte(System.Buffers.IBufferWriter w, System.Byte b)
+ public method static System.Void WriteChar(System.Buffers.IBufferWriter w, System.Char value)
+ public method static System.Void WriteDateTime(System.Buffers.IBufferWriter w, System.DateTime value)
+ public method static System.Void WriteDateTimeOffset(System.Buffers.IBufferWriter w, System.DateTimeOffset value)
+ public method static System.Void WriteDecimal(AustinHarris.JsonRpc.Serialization.PooledByteBufferWriter w, System.Decimal value)
+ public method static System.Void WriteDecimal(System.Buffers.IBufferWriter w, System.Decimal value)
+ public method static System.Void WriteDouble(AustinHarris.JsonRpc.Serialization.PooledByteBufferWriter w, System.Double value)
+ public method static System.Void WriteDouble(System.Buffers.IBufferWriter w, System.Double value)
+ public method static System.Void WriteId(System.Buffers.IBufferWriter w, System.Object id)
+ public method static System.Void WriteInt64(AustinHarris.JsonRpc.Serialization.PooledByteBufferWriter w, System.Int64 value)
+ public method static System.Void WriteInt64(System.Buffers.IBufferWriter w, System.Int64 value)
+ public method static System.Void WriteNull(AustinHarris.JsonRpc.Serialization.PooledByteBufferWriter w)
+ public method static System.Void WriteNull(System.Buffers.IBufferWriter w)
+ public method static System.Void WritePropertyName(System.Buffers.IBufferWriter w, System.String name)
+ public method static System.Void WriteQuotedAscii(System.Buffers.IBufferWriter w, System.String text)
+ public method static System.Void WriteRaw(System.Buffers.IBufferWriter w, System.ReadOnlySpan raw)
+ public method static System.Void WriteSingle(AustinHarris.JsonRpc.Serialization.PooledByteBufferWriter w, System.Single value)
+ public method static System.Void WriteSingle(System.Buffers.IBufferWriter w, System.Single value)
+ public method static System.Void WriteString(AustinHarris.JsonRpc.Serialization.PooledByteBufferWriter w, System.String value)
+ public method static System.Void WriteString(System.Buffers.IBufferWriter w, System.ReadOnlySpan value)
+ public method static System.Void WriteString(System.Buffers.IBufferWriter w, System.String value)
+ public method static System.Void WriteUInt64(System.Buffers.IBufferWriter w, System.UInt64 value)
+static class AustinHarris.JsonRpc.ServiceBinder
+ public method static AustinHarris.JsonRpc.RpcBinding BindInterface(System.String sessionId, TInterface implementation, AustinHarris.JsonRpc.RpcInterfaceBindingOptions options = null)
+ public method static AustinHarris.JsonRpc.RpcBinding BindInterface(TInterface implementation, AustinHarris.JsonRpc.RpcInterfaceBindingOptions options = null)
+ public method static System.Boolean UnbindMethod(System.String name)
+ public method static System.Boolean UnbindMethod(System.String sessionID, System.String name)
+ public method static System.Void BindMethod(System.String name, System.Delegate implementation, System.String[] parameterNames = null, System.Collections.Generic.IDictionary defaults = null, AustinHarris.JsonRpc.RpcContextFlow contextFlow = None)
+ public method static System.Void BindMethod(System.String name, System.Delegate implementation, System.String[] parameterNames, System.Collections.Generic.IDictionary defaults)
+ public method static System.Void BindMethod(System.String sessionID, System.String name, System.Delegate implementation, System.String[] parameterNames = null, System.Collections.Generic.IDictionary defaults = null, AustinHarris.JsonRpc.RpcContextFlow contextFlow = None)
+ public method static System.Void BindMethod(System.String sessionID, System.String name, System.Delegate implementation, System.String[] parameterNames, System.Collections.Generic.IDictionary defaults)
+ public method static System.Void BindService(System.String sessionID, System.Object instance)
+ public method static System.Void BindService(System.String sessionID, System.Type serviceType, System.Func resolve)
+ public method static System.Void BindService()
+ public method static System.Void BindService(System.String sessionID)
+## AustinHarris.JsonRpc.AspNetCore 2.0.0.0 PublicKeyToken=
+ informational=2.0.0-preview.1
+class AustinHarris.JsonRpc.AspNetCore.JsonRpcConnectionHandler : Microsoft.AspNetCore.Connections.ConnectionHandler
+ public ctor JsonRpcConnectionHandler(Microsoft.Extensions.Options.IOptions options, System.IServiceProvider services = null)
+ public method virtual System.Threading.Tasks.Task OnConnectedAsync(Microsoft.AspNetCore.Connections.ConnectionContext connection)
+static class AustinHarris.JsonRpc.AspNetCore.JsonRpcEndpoint
+ public method static System.Threading.Tasks.Task HandleAsync(Microsoft.AspNetCore.Http.HttpContext http, AustinHarris.JsonRpc.AspNetCore.JsonRpcOptions options)
+class AustinHarris.JsonRpc.AspNetCore.JsonRpcOptions
+ public ctor JsonRpcOptions()
+ public property AustinHarris.JsonRpc.Serialization.JsonRpcSerializer Serializer { get; set; }
+ public property System.Boolean EnableAsyncMethods { get; set; }
+ public property System.Boolean NoContentForNotifications { get; set; }
+ public property System.Func ContextFactory { get; set; }
+ public property System.Func SessionSelector { get; set; }
+ public property System.Func ServiceProviderSelector { get; set; }
+ public property System.Int64 MaxRequestBytes { get; set; }
+ public property System.String ResponseContentType { get; set; }
+ public property System.String SessionId { get; set; }
+static class AustinHarris.JsonRpc.AspNetCore.JsonRpcServiceCollectionExtensions
+ public method static Microsoft.AspNetCore.Builder.IEndpointConventionBuilder MapJsonRpc(Microsoft.AspNetCore.Routing.IEndpointRouteBuilder endpoints, System.String pattern = /jsonrpc, AustinHarris.JsonRpc.AspNetCore.JsonRpcOptions options = null)
+ public method static Microsoft.Extensions.DependencyInjection.IServiceCollection AddJsonRpc(Microsoft.Extensions.DependencyInjection.IServiceCollection services, System.Action configure = null)
+ public method static Microsoft.Extensions.DependencyInjection.IServiceCollection AddJsonRpcService(Microsoft.Extensions.DependencyInjection.IServiceCollection services, Microsoft.Extensions.DependencyInjection.ServiceLifetime lifetime, System.String sessionId = null)
+ public method static Microsoft.Extensions.DependencyInjection.IServiceCollection AddJsonRpcService(Microsoft.Extensions.DependencyInjection.IServiceCollection services, System.String sessionId = null)
+ public method static Microsoft.Extensions.DependencyInjection.IServiceCollection AddJsonRpcServicesFromAssembly(Microsoft.Extensions.DependencyInjection.IServiceCollection services, System.Reflection.Assembly assembly, Microsoft.Extensions.DependencyInjection.ServiceLifetime lifetime, System.String sessionId = null)
+ public method static Microsoft.Extensions.DependencyInjection.IServiceCollection AddJsonRpcServicesFromAssembly(Microsoft.Extensions.DependencyInjection.IServiceCollection services, System.Reflection.Assembly assembly, System.String sessionId = null)
+## AustinHarris.JsonRpc.SystemTextJson 2.0.0.0 PublicKeyToken=
+ informational=2.0.0-preview.1
+sealed class AustinHarris.JsonRpc.SystemTextJson.JsonRpcBooleanConverter : System.Text.Json.Serialization.JsonConverter`1[[System.Boolean, System.Private.CoreLib, Version=10.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]
+ public ctor JsonRpcBooleanConverter()
+ public method virtual System.Boolean Read(ref System.Text.Json.Utf8JsonReader reader, System.Type typeToConvert, System.Text.Json.JsonSerializerOptions options)
+ public method virtual System.Void Write(System.Text.Json.Utf8JsonWriter writer, System.Boolean value, System.Text.Json.JsonSerializerOptions options)
+sealed class AustinHarris.JsonRpc.SystemTextJson.JsonRpcCharConverter : System.Text.Json.Serialization.JsonConverter`1[[System.Char, System.Private.CoreLib, Version=10.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]
+ public ctor JsonRpcCharConverter()
+ public method virtual System.Char Read(ref System.Text.Json.Utf8JsonReader reader, System.Type typeToConvert, System.Text.Json.JsonSerializerOptions options)
+ public method virtual System.Void Write(System.Text.Json.Utf8JsonWriter writer, System.Char value, System.Text.Json.JsonSerializerOptions options)
+static class AustinHarris.JsonRpc.SystemTextJson.JsonRpcConverters
+ public method static System.Boolean ContainsAll(System.Text.Json.JsonSerializerOptions options)
+ public method static System.Collections.Generic.IEnumerable Create()
+ public method static System.Void AddMissing(System.Text.Json.JsonSerializerOptions options)
+sealed class AustinHarris.JsonRpc.SystemTextJson.JsonRpcDateTimeConverter : System.Text.Json.Serialization.JsonConverter`1[[System.DateTime, System.Private.CoreLib, Version=10.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]
+ public ctor JsonRpcDateTimeConverter()
+ public method virtual System.DateTime Read(ref System.Text.Json.Utf8JsonReader reader, System.Type typeToConvert, System.Text.Json.JsonSerializerOptions options)
+ public method virtual System.Void Write(System.Text.Json.Utf8JsonWriter writer, System.DateTime value, System.Text.Json.JsonSerializerOptions options)
+sealed class AustinHarris.JsonRpc.SystemTextJson.JsonRpcDateTimeOffsetConverter : System.Text.Json.Serialization.JsonConverter`1[[System.DateTimeOffset, System.Private.CoreLib, Version=10.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]
+ public ctor JsonRpcDateTimeOffsetConverter()
+ public method virtual System.DateTimeOffset Read(ref System.Text.Json.Utf8JsonReader reader, System.Type typeToConvert, System.Text.Json.JsonSerializerOptions options)
+ public method virtual System.Void Write(System.Text.Json.Utf8JsonWriter writer, System.DateTimeOffset value, System.Text.Json.JsonSerializerOptions options)
+sealed class AustinHarris.JsonRpc.SystemTextJson.JsonRpcNumberConverterFactory : System.Text.Json.Serialization.JsonConverterFactory
+ public ctor JsonRpcNumberConverterFactory()
+ public method virtual System.Boolean CanConvert(System.Type typeToConvert)
+ public method virtual System.Text.Json.Serialization.JsonConverter CreateConverter(System.Type typeToConvert, System.Text.Json.JsonSerializerOptions options)
+sealed class AustinHarris.JsonRpc.SystemTextJson.SystemTextJsonRpcSerializer : AustinHarris.JsonRpc.Serialization.JsonRpcSerializer
+ public ctor SystemTextJsonRpcSerializer()
+ public ctor SystemTextJsonRpcSerializer(System.Text.Json.JsonSerializerOptions options)
+ public method static System.Text.Json.JsonSerializerOptions CreateDefaultOptions()
+ public method virtual System.Object Read(System.ReadOnlySpan utf8Json, System.Type type)
+ public method virtual System.Void Write(System.Buffers.IBufferWriter output, System.Object value, System.Type type)
+ public method virtual System.Void Write(System.Buffers.IBufferWriter output, T value)
+ public method virtual T Read(System.ReadOnlySpan utf8Json)
+ public property System.Int32 MaxDepth { get; }
+ public property System.String Name { get; }
+ public property System.Text.Json.JsonSerializerOptions DefaultOptions { get; }
+ public property System.Text.Json.JsonSerializerOptions EffectiveOptions { get; }
+ public property System.Text.Json.JsonSerializerOptions Options { get; }
+## AustinHarris.JsonRpc.Newtonsoft 2.0.0.0 PublicKeyToken=
+ informational=2.0.0-preview.1
+static class AustinHarris.JsonRpc.Newtonsoft.NewtonsoftJsonRpc
+ public method static AustinHarris.JsonRpc.Newtonsoft.NewtonsoftJsonRpcSerializer SerializerFor(Newtonsoft.Json.JsonSerializerSettings settings)
+ public method static System.String ProcessSync(System.String jsonRpc, System.Object context, Newtonsoft.Json.JsonSerializerSettings settings)
+ public method static System.String ProcessSync(System.String sessionId, System.String jsonRpc, System.Object context, Newtonsoft.Json.JsonSerializerSettings settings)
+ public method static System.Threading.Tasks.Task Process(System.String jsonRpc, System.Object context, Newtonsoft.Json.JsonSerializerSettings settings)
+ public method static System.Threading.Tasks.Task Process(System.String sessionId, System.String jsonRpc, System.Object context, Newtonsoft.Json.JsonSerializerSettings settings)
+ public method static System.Void Process(AustinHarris.JsonRpc.JsonRpcStateAsync async, System.Object context, Newtonsoft.Json.JsonSerializerSettings settings)
+ public method static System.Void Process(System.String sessionId, AustinHarris.JsonRpc.JsonRpcStateAsync async, System.Object context, Newtonsoft.Json.JsonSerializerSettings settings)
+sealed class AustinHarris.JsonRpc.Newtonsoft.NewtonsoftJsonRpcSerializer : AustinHarris.JsonRpc.Serialization.JsonRpcSerializer
+ public ctor NewtonsoftJsonRpcSerializer()
+ public ctor NewtonsoftJsonRpcSerializer(Newtonsoft.Json.JsonSerializerSettings settings)
+ public method virtual System.Object Read(System.ReadOnlySpan utf8Json, System.Type type)
+ public method virtual System.Void Write(System.Buffers.IBufferWriter output, System.Object value, System.Type type)
+ public method virtual System.Void Write(System.Buffers.IBufferWriter output, T value)
+ public method virtual T Read(System.ReadOnlySpan utf8Json)
+ public property Newtonsoft.Json.JsonSerializer Serializer { get; }
+ public property Newtonsoft.Json.JsonSerializerSettings Settings { get; }
+ public property System.Boolean Lenient { get; }
+ public property System.Int32 MaxDepth { get; }
+ public property System.String Name { get; }
diff --git a/docs/api-surface/2.0.0-preview.3.txt b/docs/api-surface/2.0.0-preview.3.txt
new file mode 100644
index 0000000..93bfe36
--- /dev/null
+++ b/docs/api-surface/2.0.0-preview.3.txt
@@ -0,0 +1,612 @@
+## AustinHarris.JsonRpc 2.0.0.0 PublicKeyToken=e6819c02cf4aec44
+ informational=2.0.0-preview.3
+static class AustinHarris.JsonRpc.Config
+ public method static System.Void SetBeforeProcessHandler(System.String sessionId, AustinHarris.JsonRpc.PreProcessHandler handler)
+ public method static System.Void SetErrorHandler(System.Func handler)
+ public method static System.Void SetErrorHandler(System.String sessionId, System.Func handler)
+ public method static System.Void SetLimits(AustinHarris.JsonRpc.JsonRpcLimits limits)
+ public method static System.Void SetLimits(System.String sessionId, AustinHarris.JsonRpc.JsonRpcLimits limits)
+ public method static System.Void SetParseErrorHandler(System.Func handler)
+ public method static System.Void SetParseErrorHandler(System.String sessionId, System.Func handler)
+ public method static System.Void SetPostProcessHandler(AustinHarris.JsonRpc.PostProcessHandler handler)
+ public method static System.Void SetPostProcessHandler(System.String sessionId, AustinHarris.JsonRpc.PostProcessHandler handler)
+ public method static System.Void SetPreProcessHandler(AustinHarris.JsonRpc.PreProcessHandler handler)
+ public method static System.Void SetPreProcessHandler(System.String sessionId, AustinHarris.JsonRpc.PreProcessHandler handler)
+ public method static System.Void SetSerializer(AustinHarris.JsonRpc.Serialization.JsonRpcSerializer serializer)
+ public method static System.Void SetSerializer(System.String sessionId, AustinHarris.JsonRpc.Serialization.JsonRpcSerializer serializer)
+ public method static System.Void SetVersionPolicy(System.String sessionId, System.Nullable policy)
+ public property AustinHarris.JsonRpc.JsonRpcLimits Limits { get; }
+ public property AustinHarris.JsonRpc.JsonRpcVersionPolicy VersionPolicy { get; set; }
+ public property AustinHarris.JsonRpc.Serialization.JsonRpcSerializer Serializer { get; set; }
+ public property System.Boolean IncludeExceptionDetails { get; set; }
+sealed class AustinHarris.JsonRpc.Handler
+ public method AustinHarris.JsonRpc.JsonResponse Handle(AustinHarris.JsonRpc.JsonRequest Rpc, System.Object RpcContext = null)
+ public method System.Void Destroy()
+ public method System.Void RegisterFuction(System.String methodName, System.Collections.Generic.Dictionary parameterNameTypeMapping, System.Collections.Generic.Dictionary parameterNameDefaultValueMapping, System.Delegate implementation)
+ public method System.Void SetPostProcessHandler(AustinHarris.JsonRpc.PostProcessHandler handler)
+ public method System.Void SetPreProcessHandler(AustinHarris.JsonRpc.PreProcessHandler handler)
+ public method System.Void UnRegisterFunction(System.String methodName)
+ public method static AustinHarris.JsonRpc.Handler GetSessionHandler()
+ public method static AustinHarris.JsonRpc.Handler GetSessionHandler(System.String sessionId)
+ public method static AustinHarris.JsonRpc.JsonRpcException RpcGetAndRemoveRpcException()
+ public method static AustinHarris.JsonRpc.JsonRpcRequestId RpcRequestId()
+ public method static AustinHarris.JsonRpc.Serialization.JsonRpcIdKind RpcRequestIdKind()
+ public method static System.Object RpcContext()
+ public method static System.ReadOnlySpan RpcRequestIdRaw()
+ public method static System.String DefaultSessionId()
+ public method static System.Void DestroySession(System.String sessionId)
+ public method static System.Void RegisterInstance(System.String sessionId, System.Object instance)
+ public method static System.Void RpcSetException(AustinHarris.JsonRpc.JsonRpcException exception)
+ public property AustinHarris.JsonRpc.Handler DefaultHandler { get; }
+ public property AustinHarris.JsonRpc.JsonRpcLimits Limits { get; set; }
+ public property AustinHarris.JsonRpc.SMD MetaData { get; set; }
+ public property AustinHarris.JsonRpc.Serialization.JsonRpcSerializer Serializer { get; set; }
+ public property System.Nullable VersionPolicy { get; set; }
+ public property System.String SessionId { get; }
+delegate AustinHarris.JsonRpc.Invocation.BoxedInvoker : System.ICloneable, System.Runtime.Serialization.ISerializable
+ public ctor BoxedInvoker(System.Object object, System.IntPtr method)
+ public method virtual System.IAsyncResult BeginInvoke(AustinHarris.JsonRpc.Serialization.JsonRpcRequestReader reader, System.Int32[] map, System.AsyncCallback callback, System.Object object)
+ public method virtual System.Object EndInvoke(System.IAsyncResult result)
+ public method virtual System.Object Invoke(AustinHarris.JsonRpc.Serialization.JsonRpcRequestReader reader, System.Int32[] map)
+sealed class AustinHarris.JsonRpc.Invocation.RpcMethod
+ public ctor RpcMethod()
+ public method static AustinHarris.JsonRpc.Invocation.RpcMethod FromDelegate(System.String name, System.Delegate implementation, System.String[] parameterNames = null, System.Collections.Generic.IDictionary defaults = null, AustinHarris.JsonRpc.RpcContextFlow contextFlow = None)
+ public method static AustinHarris.JsonRpc.Invocation.RpcMethod FromDelegate(System.String name, System.Delegate implementation, System.String[] parameterNames, System.Collections.Generic.IDictionary defaults)
+ public method static AustinHarris.JsonRpc.Invocation.RpcMethod FromMethodInfo(System.String name, System.Reflection.MethodInfo method, System.Object target, System.String[] parameterNames = null, AustinHarris.JsonRpc.RpcContextFlow contextFlow = None)
+ public method static AustinHarris.JsonRpc.Invocation.RpcMethod FromMethodInfo(System.String name, System.Reflection.MethodInfo method, System.Object target, System.String[] parameterNames)
+ public method static AustinHarris.JsonRpc.Invocation.RpcMethod FromMethodInfo(System.String name, System.Reflection.MethodInfo method, System.Type serviceType, System.Func resolve, System.String[] parameterNames = null, AustinHarris.JsonRpc.RpcContextFlow contextFlow = None)
+ public property AustinHarris.JsonRpc.Invocation.BoxedInvoker InvokeBoxed { get; }
+ public property AustinHarris.JsonRpc.Invocation.RpcParameter[] Parameters { get; }
+ public property AustinHarris.JsonRpc.Invocation.StreamingInvoker Invoke { get; }
+ public property AustinHarris.JsonRpc.RpcContextFlow ContextFlow { get; }
+ public property System.Boolean ExpectsRefException { get; }
+ public property System.Boolean IsAsync { get; }
+ public property System.Int32 DefaultCount { get; }
+ public property System.String Name { get; }
+ public property System.Type ResultType { get; }
+ public property System.Type ReturnType { get; }
+sealed class AustinHarris.JsonRpc.Invocation.RpcParameter
+ public property System.Boolean HasDefault { get; }
+ public property System.Object DefaultValue { get; }
+ public property System.String Name { get; }
+ public property System.Type Type { get; }
+delegate AustinHarris.JsonRpc.Invocation.StreamingInvoker : System.ICloneable, System.Runtime.Serialization.ISerializable
+ public ctor StreamingInvoker(System.Object object, System.IntPtr method)
+ public method virtual System.IAsyncResult BeginInvoke(AustinHarris.JsonRpc.Serialization.JsonRpcRequestReader reader, System.Int32[] map, AustinHarris.JsonRpc.Serialization.JsonRpcSerializer serializer, System.Buffers.IBufferWriter output, System.AsyncCallback callback, System.Object object)
+ public method virtual System.Void EndInvoke(System.IAsyncResult result)
+ public method virtual System.Void Invoke(AustinHarris.JsonRpc.Serialization.JsonRpcRequestReader reader, System.Int32[] map, AustinHarris.JsonRpc.Serialization.JsonRpcSerializer serializer, System.Buffers.IBufferWriter output)
+struct AustinHarris.JsonRpc.Jsmn.JsmnCursor
+ public ctor JsmnCursor(System.ReadOnlySpan doc, AustinHarris.JsonRpc.Jsmn.JsmnToken[] tokens, System.Int32 index)
+ public field AustinHarris.JsonRpc.Jsmn.JsmnToken[] Tokens
+ public field System.Int32 Index
+ public field System.ReadOnlySpan Doc
+ public method System.Int32 Next()
+ public property System.Boolean IsNull { get; }
+ public property System.ReadOnlySpan Text { get; }
+ public property ref AustinHarris.JsonRpc.Jsmn.JsmnToken Token { get; }
+static class AustinHarris.JsonRpc.Jsmn.JsmnMapper
+ public method static System.Boolean ReadBoolean(ref AustinHarris.JsonRpc.Jsmn.JsmnCursor c)
+ public method static System.Char ReadChar(ref AustinHarris.JsonRpc.Jsmn.JsmnCursor c)
+ public method static System.DateTime ReadDateTime(ref AustinHarris.JsonRpc.Jsmn.JsmnCursor c)
+ public method static System.Decimal ReadDecimal(ref AustinHarris.JsonRpc.Jsmn.JsmnCursor c)
+ public method static System.Double ReadDouble(ref AustinHarris.JsonRpc.Jsmn.JsmnCursor c)
+ public method static System.Int32 ReadInt32(ref AustinHarris.JsonRpc.Jsmn.JsmnCursor c)
+ public method static System.Int64 ReadInt64(ref AustinHarris.JsonRpc.Jsmn.JsmnCursor c)
+ public method static System.Object ReadObject(ref AustinHarris.JsonRpc.Jsmn.JsmnCursor c, System.Type type)
+ public method static System.Single ReadSingle(ref AustinHarris.JsonRpc.Jsmn.JsmnCursor c)
+ public method static System.String ReadString(ref AustinHarris.JsonRpc.Jsmn.JsmnCursor c)
+ public method static System.UInt64 ReadUInt64(ref AustinHarris.JsonRpc.Jsmn.JsmnCursor c)
+ public method static System.Void WriteObject(System.Buffers.IBufferWriter w, System.Object value, System.Type declaredType, System.Int32 depth)
+static class AustinHarris.JsonRpc.Jsmn.JsmnReader`1
+ public field static readonly AustinHarris.JsonRpc.Jsmn.JsmnTokenReader Read
+sealed class AustinHarris.JsonRpc.Jsmn.JsmnRequestReader : AustinHarris.JsonRpc.Serialization.JsonRpcRequestReader
+ public ctor JsmnRequestReader(AustinHarris.JsonRpc.Serialization.JsonRpcSerializer serializer)
+ public method virtual System.Boolean ParamIsNull(System.Int32 i)
+ public method virtual System.Boolean Select(System.Int32 index)
+ public method virtual System.Boolean TryParse(System.ReadOnlyMemory utf8Document, out ref System.String error)
+ public method virtual System.Object ReadParam(System.Int32 i, System.Type type)
+ public method virtual System.ReadOnlySpan ParamNameUtf8(System.Int32 i)
+ public method virtual System.ReadOnlySpan ParamRaw(System.Int32 i)
+ public method virtual System.Void Release()
+ public method virtual T ReadParam(System.Int32 i)
+ public property AustinHarris.JsonRpc.Jsmn.JsmnTokenizer Tokenizer { get; }
+ public property AustinHarris.JsonRpc.Serialization.JsonRpcIdKind IdKind { get; }
+ public property AustinHarris.JsonRpc.Serialization.JsonRpcParamsKind ParamsKind { get; }
+ public property AustinHarris.JsonRpc.Serialization.JsonRpcVersionKind VersionKind { get; }
+ public property System.Boolean HasMethod { get; }
+ public property System.Boolean IsBatch { get; }
+ public property System.Int32 Count { get; }
+ public property System.Int32 ParamCount { get; }
+ public property System.Object IdValue { get; }
+ public property System.Object ParamsValue { get; }
+ public property System.ReadOnlyMemory Document { get; }
+ public property System.ReadOnlySpan IdRaw { get; }
+ public property System.ReadOnlySpan MethodUtf8 { get; }
+ public property System.String Method { get; }
+sealed class AustinHarris.JsonRpc.Jsmn.JsmnSerializer : AustinHarris.JsonRpc.Serialization.JsonRpcSerializer
+ public ctor JsmnSerializer()
+ public ctor JsmnSerializer(System.Boolean lenient)
+ public ctor JsmnSerializer(System.Boolean lenient, System.Int32 maxDepth)
+ public field static readonly AustinHarris.JsonRpc.Jsmn.JsmnSerializer Instance
+ public method virtual System.Object Read(System.ReadOnlySpan utf8Json, System.Type type)
+ public method virtual System.Void Write(System.Buffers.IBufferWriter output, System.Object value, System.Type type)
+ public method virtual System.Void Write(System.Buffers.IBufferWriter output, T value)
+ public method virtual T Read(System.ReadOnlySpan utf8Json)
+ public property System.Boolean Lenient { get; }
+ public property System.Int32 MaxDepth { get; }
+ public property System.String Name { get; }
+struct AustinHarris.JsonRpc.Jsmn.JsmnToken
+ public field AustinHarris.JsonRpc.Jsmn.JsmnType Type
+ public field System.Boolean Escaped
+ public field System.Boolean IsKey
+ public field System.Int32 End
+ public field System.Int32 Parent
+ public field System.Int32 Size
+ public field System.Int32 Start
+delegate AustinHarris.JsonRpc.Jsmn.JsmnTokenReader`1 : System.ICloneable, System.Runtime.Serialization.ISerializable
+ public ctor JsmnTokenReader`1(System.Object object, System.IntPtr method)
+ public method virtual System.IAsyncResult BeginInvoke(ref AustinHarris.JsonRpc.Jsmn.JsmnCursor cursor, System.AsyncCallback callback, System.Object object)
+ public method virtual T EndInvoke(ref AustinHarris.JsonRpc.Jsmn.JsmnCursor cursor, System.IAsyncResult result)
+ public method virtual T Invoke(ref AustinHarris.JsonRpc.Jsmn.JsmnCursor cursor)
+sealed class AustinHarris.JsonRpc.Jsmn.JsmnTokenizer
+ public ctor JsmnTokenizer()
+ public field System.Boolean Lenient
+ public field static const System.Int32 DefaultMaxDepth
+ public field static const System.Int32 ErrorDepth
+ public field static const System.Int32 ErrorInvalid
+ public field static const System.Int32 ErrorNoMemory
+ public field static const System.Int32 ErrorPartial
+ public method System.Int32 Parse(System.ReadOnlySpan js)
+ public method System.Int32 Skip(System.Int32 index)
+ public method System.Void Release()
+ public method static System.Boolean IsNull(System.ReadOnlySpan js, in ref AustinHarris.JsonRpc.Jsmn.JsmnToken tok)
+ public method static System.ReadOnlySpan RawJson(System.ReadOnlySpan js, in ref AustinHarris.JsonRpc.Jsmn.JsmnToken tok)
+ public method static System.ReadOnlySpan Slice(System.ReadOnlySpan js, in ref AustinHarris.JsonRpc.Jsmn.JsmnToken tok)
+ public property AustinHarris.JsonRpc.Jsmn.JsmnToken[] Tokens { get; }
+ public property System.Int32 MaxDepth { get; set; }
+ public property System.Int32 Position { get; }
+ public property System.Int32 TokenCount { get; }
+enum AustinHarris.JsonRpc.Jsmn.JsmnType : System.IComparable, System.IConvertible, System.IFormattable, System.ISpanFormattable
+ Undefined = 0
+ Object = 1
+ Array = 2
+ String = 3
+ Primitive = 4
+static class AustinHarris.JsonRpc.Jsmn.JsmnWriter`1
+ public field static readonly System.Action, T> Write
+class AustinHarris.JsonRpc.JsonRequest
+ public ctor JsonRequest()
+ public ctor JsonRequest(System.String method, System.Object pars, System.Object id)
+ public property System.Object Id { get; set; }
+ public property System.Object Params { get; set; }
+ public property System.String JsonRpc { get; }
+ public property System.String Method { get; set; }
+class AustinHarris.JsonRpc.JsonResponse
+ public ctor JsonResponse()
+ public property AustinHarris.JsonRpc.JsonRpcException Error { get; set; }
+ public property System.Object Id { get; set; }
+ public property System.Object Result { get; set; }
+ public property System.String JsonRpc { get; set; }
+class AustinHarris.JsonRpc.JsonResponse`1
+ public ctor JsonResponse`1()
+ public property AustinHarris.JsonRpc.JsonRpcException Error { get; set; }
+ public property System.Object Id { get; set; }
+ public property System.String JsonRpc { get; set; }
+ public property T Result { get; set; }
+sealed class AustinHarris.JsonRpc.JsonRpcCancellationAttribute : System.Attribute
+ public ctor JsonRpcCancellationAttribute()
+sealed class AustinHarris.JsonRpc.JsonRpcContext
+ public method static AustinHarris.JsonRpc.JsonRpcContext Current()
+ public method static AustinHarris.JsonRpc.JsonRpcRequestId CurrentRequestId()
+ public method static System.Void SetException(AustinHarris.JsonRpc.JsonRpcException exception)
+ public property System.Object Value { get; }
+class AustinHarris.JsonRpc.JsonRpcException : System.ApplicationException, System.Runtime.Serialization.ISerializable
+ public ctor JsonRpcException(System.Int32 code, System.String message, System.Object data)
+ public property System.Int32 code { get; set; }
+ public property System.Object data { get; set; }
+ public property System.String message { get; set; }
+sealed class AustinHarris.JsonRpc.JsonRpcLimits
+ public ctor JsonRpcLimits(System.Int64 maxDocumentBytes = 4194304, System.Int32 maxBatchCount = 1024)
+ public property AustinHarris.JsonRpc.JsonRpcLimits Default { get; }
+ public property AustinHarris.JsonRpc.JsonRpcLimits Unlimited { get; }
+ public property System.Int32 MaxBatchCount { get; }
+ public property System.Int64 MaxDocumentBytes { get; }
+sealed class AustinHarris.JsonRpc.JsonRpcMethodAttribute : System.Attribute
+ public ctor JsonRpcMethodAttribute(System.String jsonMethodName = )
+ public property AustinHarris.JsonRpc.RpcContextFlow ContextFlow { get; set; }
+ public property System.String JsonMethodName { get; }
+sealed class AustinHarris.JsonRpc.JsonRpcParamAttribute : System.Attribute
+ public ctor JsonRpcParamAttribute(System.String jsonParamName = )
+ public property System.String JsonParamName { get; }
+static class AustinHarris.JsonRpc.JsonRpcProcessor
+ public method static System.Byte[] ProcessBytes(System.String sessionId, System.ReadOnlySpan request, System.Object context = null, AustinHarris.JsonRpc.Serialization.JsonRpcSerializer serializer = null)
+ public method static System.String ProcessSync(AustinHarris.JsonRpc.Serialization.JsonRpcSerializer serializer, System.String jsonRpc, System.Object context = null)
+ public method static System.String ProcessSync(System.String jsonRpc, System.Object context = null)
+ public method static System.String ProcessSync(System.String sessionId, System.String jsonRpc, System.Object jsonRpcContext, AustinHarris.JsonRpc.Serialization.JsonRpcSerializer serializer = null)
+ public method static System.Threading.Tasks.Task ProcessAsync(System.String sessionId, System.Buffers.ReadOnlySequence request, System.Buffers.IBufferWriter output, System.Object context = null, AustinHarris.JsonRpc.Serialization.JsonRpcSerializer serializer = null, System.Threading.CancellationToken cancellationToken = null)
+ public method static System.Threading.Tasks.Task ProcessAsync(System.String sessionId, System.ReadOnlyMemory request, System.Buffers.IBufferWriter output, System.Object context = null, AustinHarris.JsonRpc.Serialization.JsonRpcSerializer serializer = null, System.Threading.CancellationToken cancellationToken = null)
+ public method static System.Threading.Tasks.Task ProcessAsync(System.String sessionId, System.ReadOnlySpan request, System.Buffers.IBufferWriter output, System.Object context = null, AustinHarris.JsonRpc.Serialization.JsonRpcSerializer serializer = null, System.Threading.CancellationToken cancellationToken = null)
+ public method static System.Threading.Tasks.Task Process(AustinHarris.JsonRpc.Serialization.JsonRpcSerializer serializer, System.String jsonRpc, System.Object context = null)
+ public method static System.Threading.Tasks.Task Process(System.String jsonRpc, System.Object context = null)
+ public method static System.Threading.Tasks.Task Process(System.String sessionId, System.String jsonRpc, System.Object context = null, AustinHarris.JsonRpc.Serialization.JsonRpcSerializer serializer = null)
+ public method static System.Threading.Tasks.Task ProcessAsync(System.String jsonRpc, System.Object context = null, System.Threading.CancellationToken cancellationToken = null)
+ public method static System.Threading.Tasks.Task ProcessAsync(System.String sessionId, System.String jsonRpc, System.Object context = null, AustinHarris.JsonRpc.Serialization.JsonRpcSerializer serializer = null, System.Threading.CancellationToken cancellationToken = null)
+ public method static System.Void Process(AustinHarris.JsonRpc.JsonRpcStateAsync async, System.Object context = null, AustinHarris.JsonRpc.Serialization.JsonRpcSerializer serializer = null)
+ public method static System.Void Process(System.String sessionId, AustinHarris.JsonRpc.JsonRpcStateAsync async, System.Object context = null, AustinHarris.JsonRpc.Serialization.JsonRpcSerializer serializer = null)
+ public method static System.Void Process(System.String sessionId, System.ReadOnlyMemory request, System.Buffers.IBufferWriter output, System.Object context = null, AustinHarris.JsonRpc.Serialization.JsonRpcSerializer serializer = null)
+ public method static System.Void Process(System.String sessionId, System.ReadOnlySpan request, System.Buffers.IBufferWriter output, System.Object context = null, AustinHarris.JsonRpc.Serialization.JsonRpcSerializer serializer = null)
+ public method static System.Void Process(System.String sessionId, in ref System.Buffers.ReadOnlySequence request, System.Buffers.IBufferWriter output, System.Object context = null, AustinHarris.JsonRpc.Serialization.JsonRpcSerializer serializer = null)
+struct AustinHarris.JsonRpc.JsonRpcRequestId : System.IEquatable`1[[AustinHarris.JsonRpc.JsonRpcRequestId, AustinHarris.JsonRpc, Version=2.0.0.0, Culture=neutral, PublicKeyToken=e6819c02cf4aec44]]
+ public method System.Boolean Equals(AustinHarris.JsonRpc.JsonRpcRequestId other)
+ public method System.Boolean TryGetInt64(out ref System.Int64 value)
+ public method System.Object ToObject()
+ public method System.String GetIntegerText()
+ public method System.String GetString()
+ public method System.Void WriteTo(System.Buffers.IBufferWriter output)
+ public method static AustinHarris.JsonRpc.JsonRpcRequestId FromInt64(System.Int64 value)
+ public method static AustinHarris.JsonRpc.JsonRpcRequestId FromObject(System.Object id)
+ public method static AustinHarris.JsonRpc.JsonRpcRequestId FromRaw(System.ReadOnlySpan raw)
+ public method static AustinHarris.JsonRpc.JsonRpcRequestId FromString(System.String value)
+ public method virtual System.Boolean Equals(System.Object obj)
+ public method virtual System.Int32 GetHashCode()
+ public method virtual System.String ToString()
+ public property AustinHarris.JsonRpc.JsonRpcRequestId Absent { get; }
+ public property AustinHarris.JsonRpc.JsonRpcRequestId Null { get; }
+ public property AustinHarris.JsonRpc.Serialization.JsonRpcIdKind Kind { get; }
+ public property System.Boolean IsAbsent { get; }
+ public property System.Boolean IsInteger { get; }
+ public property System.Boolean IsNull { get; }
+ public property System.Boolean IsString { get; }
+abstract class AustinHarris.JsonRpc.JsonRpcService
+ protected ctor JsonRpcService()
+ protected ctor JsonRpcService(System.Boolean autoBind)
+ protected ctor JsonRpcService(System.String sessionId)
+class AustinHarris.JsonRpc.JsonRpcStateAsync : System.IAsyncResult
+ public ctor JsonRpcStateAsync(System.AsyncCallback cb, System.Object extraData)
+ public property System.Boolean CompletedSynchronously { get; }
+ public property System.Boolean IsCompleted { get; }
+ public property System.Object AsyncState { get; }
+ public property System.String JsonRpc { get; set; }
+ public property System.String Result { get; set; }
+ public property System.Threading.WaitHandle AsyncWaitHandle { get; }
+enum AustinHarris.JsonRpc.JsonRpcVersionPolicy : System.IComparable, System.IConvertible, System.IFormattable, System.ISpanFormattable
+ Lenient = 0
+ Ignore = 1
+ Strict = 2
+class AustinHarris.JsonRpc.ParameterDefaultValue
+ public ctor ParameterDefaultValue(System.String name, System.Object value)
+ public property System.Object Value { get; }
+ public property System.String Name { get; }
+delegate AustinHarris.JsonRpc.PostProcessHandler : System.ICloneable, System.Runtime.Serialization.ISerializable
+ public ctor PostProcessHandler(System.Object object, System.IntPtr method)
+ public method virtual AustinHarris.JsonRpc.JsonRpcException EndInvoke(System.IAsyncResult result)
+ public method virtual AustinHarris.JsonRpc.JsonRpcException Invoke(AustinHarris.JsonRpc.JsonRequest request, AustinHarris.JsonRpc.JsonResponse response, System.Object context)
+ public method virtual System.IAsyncResult BeginInvoke(AustinHarris.JsonRpc.JsonRequest request, AustinHarris.JsonRpc.JsonResponse response, System.Object context, System.AsyncCallback callback, System.Object object)
+delegate AustinHarris.JsonRpc.PreProcessHandler : System.ICloneable, System.Runtime.Serialization.ISerializable
+ public ctor PreProcessHandler(System.Object object, System.IntPtr method)
+ public method virtual AustinHarris.JsonRpc.JsonRpcException EndInvoke(System.IAsyncResult result)
+ public method virtual AustinHarris.JsonRpc.JsonRpcException Invoke(AustinHarris.JsonRpc.JsonRequest request, System.Object context)
+ public method virtual System.IAsyncResult BeginInvoke(AustinHarris.JsonRpc.JsonRequest request, System.Object context, System.AsyncCallback callback, System.Object object)
+sealed class AustinHarris.JsonRpc.RpcBinding : System.IDisposable
+ public method System.Void Dispose()
+ public property System.Collections.Generic.IReadOnlyList Methods { get; }
+ public property System.String SessionId { get; }
+enum AustinHarris.JsonRpc.RpcContextFlow : System.IComparable, System.IConvertible, System.IFormattable, System.ISpanFormattable
+ None = 0
+ Flow = 1
+sealed class AustinHarris.JsonRpc.RpcInterfaceBindingOptions
+ public ctor RpcInterfaceBindingOptions()
+ public property AustinHarris.JsonRpc.RpcNameCasing Casing { get; set; }
+ public property System.Boolean Recursive { get; set; }
+ public property System.Func Include { get; set; }
+ public property System.Func NameRule { get; set; }
+ public property System.String Prefix { get; set; }
+ public property System.String Separator { get; set; }
+sealed class AustinHarris.JsonRpc.RpcInterfaceMethod
+ public property System.Reflection.MethodInfo MethodInfo { get; }
+ public property System.String DefaultName { get; }
+ public property System.String Leaf { get; }
+ public property System.String[] Path { get; }
+ public property System.Type Interface { get; }
+enum AustinHarris.JsonRpc.RpcNameCasing : System.IComparable, System.IConvertible, System.IFormattable, System.ISpanFormattable
+ Preserve = 0
+ CamelCase = 1
+class AustinHarris.JsonRpc.SMD
+ public ctor SMD()
+ public method static System.Boolean ContainsType(System.Collections.Generic.Dictionary jo)
+ public method static System.Int32 AddType(System.Collections.Generic.Dictionary jo)
+ public property AustinHarris.JsonRpc.SMDAdditionalParameters[] parameters { get; set; }
+ public property AustinHarris.JsonRpc.SMDServiceCollection Services { get; }
+ public property System.Boolean additonalParameters { get; set; }
+ public property System.Collections.Generic.Dictionary> Types { get; }
+ public property System.String envelope { get; set; }
+ public property System.String target { get; set; }
+ public property System.String transport { get; set; }
+class AustinHarris.JsonRpc.SMDAdditionalParameters
+ public ctor SMDAdditionalParameters(System.String parametername, System.Type type)
+ public property System.Int32 Type { get; set; }
+ public property System.Int32 __type { get; }
+ public property System.String Name { get; set; }
+ public property System.String __name { get; }
+ public property System.Type ObjectType { get; set; }
+class AustinHarris.JsonRpc.SMDResult
+ public ctor SMDResult(System.Type type)
+ public property System.Int32 Type { get; }
+ public property System.Int32 __type { get; }
+class AustinHarris.JsonRpc.SMDService
+ public ctor SMDService(System.String transport, System.String envelope, System.Collections.Generic.Dictionary parameters, System.Collections.Generic.Dictionary defaultValues, System.Delegate dele)
+ public field System.Delegate dele
+ public property AustinHarris.JsonRpc.Invocation.RpcMethod Method { get; }
+ public property AustinHarris.JsonRpc.ParameterDefaultValue[] defaultValues { get; }
+ public property AustinHarris.JsonRpc.SMDAdditionalParameters[] parameters { get; }
+ public property AustinHarris.JsonRpc.SMDResult returns { get; }
+ public property System.String envelope { get; }
+ public property System.String transport { get; }
+sealed class AustinHarris.JsonRpc.SMDServiceCollection : System.Collections.Generic.ICollection`1[[System.Collections.Generic.KeyValuePair`2[[System.String, System.Private.CoreLib, Version=10.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[AustinHarris.JsonRpc.SMDService, AustinHarris.JsonRpc, Version=2.0.0.0, Culture=neutral, PublicKeyToken=e6819c02cf4aec44]], System.Private.CoreLib, Version=10.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]], System.Collections.Generic.IDictionary`2[[System.String, System.Private.CoreLib, Version=10.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[AustinHarris.JsonRpc.SMDService, AustinHarris.JsonRpc, Version=2.0.0.0, Culture=neutral, PublicKeyToken=e6819c02cf4aec44]], System.Collections.Generic.IEnumerable`1[[System.Collections.Generic.KeyValuePair`2[[System.String, System.Private.CoreLib, Version=10.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[AustinHarris.JsonRpc.SMDService, AustinHarris.JsonRpc, Version=2.0.0.0, Culture=neutral, PublicKeyToken=e6819c02cf4aec44]], System.Private.CoreLib, Version=10.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]], System.Collections.Generic.IReadOnlyCollection`1[[System.Collections.Generic.KeyValuePair`2[[System.String, System.Private.CoreLib, Version=10.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[AustinHarris.JsonRpc.SMDService, AustinHarris.JsonRpc, Version=2.0.0.0, Culture=neutral, PublicKeyToken=e6819c02cf4aec44]], System.Private.CoreLib, Version=10.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]], System.Collections.Generic.IReadOnlyDictionary`2[[System.String, System.Private.CoreLib, Version=10.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[AustinHarris.JsonRpc.SMDService, AustinHarris.JsonRpc, Version=2.0.0.0, Culture=neutral, PublicKeyToken=e6819c02cf4aec44]], System.Collections.IEnumerable
+ public ctor SMDServiceCollection()
+ public method System.Boolean Contains(System.Collections.Generic.KeyValuePair item)
+ public method System.Boolean ContainsKey(System.String key)
+ public method System.Boolean Remove(System.Collections.Generic.KeyValuePair item)
+ public method System.Boolean Remove(System.String key)
+ public method System.Boolean TryGetValue(System.String key, out ref AustinHarris.JsonRpc.SMDService value)
+ public method System.Collections.Generic.IEnumerator> GetEnumerator()
+ public method System.Void Add(System.Collections.Generic.KeyValuePair item)
+ public method System.Void Add(System.String key, AustinHarris.JsonRpc.SMDService value)
+ public method System.Void Clear()
+ public method System.Void CopyTo(System.Collections.Generic.KeyValuePair[] array, System.Int32 arrayIndex)
+ public property AustinHarris.JsonRpc.SMDService Item[System.String key] { get; set; }
+ public property System.Boolean IsReadOnly { get; }
+ public property System.Collections.Generic.ICollection Values { get; }
+ public property System.Collections.Generic.ICollection Keys { get; }
+ public property System.Int32 Count { get; }
+sealed class AustinHarris.JsonRpc.Serialization.ExceptionInfo
+ public ctor ExceptionInfo()
+ public method static AustinHarris.JsonRpc.Serialization.ExceptionInfo ForResponse(System.Exception ex)
+ public method static AustinHarris.JsonRpc.Serialization.ExceptionInfo From(System.Exception ex)
+ public method static AustinHarris.JsonRpc.Serialization.ExceptionInfo From(System.Exception ex, System.Boolean includeDetails)
+ public property AustinHarris.JsonRpc.Serialization.ExceptionInfo InnerException { get; set; }
+ public property System.Int32 HResult { get; set; }
+ public property System.String ClassName { get; set; }
+ public property System.String Message { get; set; }
+ public property System.String Source { get; set; }
+ public property System.String StackTraceString { get; set; }
+static class AustinHarris.JsonRpc.Serialization.JsonFramer
+ public method static System.Boolean TryReadDocument(ref System.Buffers.ReadOnlySequence buffer, out ref System.Buffers.ReadOnlySequence document)
+ public method static System.Int32 FindDocumentEnd(System.ReadOnlySpan buffer)
+class AustinHarris.JsonRpc.Serialization.JsonRpcBindException : System.Exception, System.Runtime.Serialization.ISerializable
+ public ctor JsonRpcBindException(System.String message)
+ public ctor JsonRpcBindException(System.String message, System.Exception inner)
+enum AustinHarris.JsonRpc.Serialization.JsonRpcIdKind : System.IComparable, System.IConvertible, System.IFormattable, System.ISpanFormattable
+ Absent = 0
+ Null = 1
+ Integer = 2
+ String = 3
+ Invalid = 4
+enum AustinHarris.JsonRpc.Serialization.JsonRpcParamsKind : System.IComparable, System.IConvertible, System.IFormattable, System.ISpanFormattable
+ Absent = 0
+ Array = 1
+ Object = 2
+ Invalid = 3
+abstract class AustinHarris.JsonRpc.Serialization.JsonRpcRequestReader
+ protected ctor JsonRpcRequestReader()
+ public method abstract System.Boolean ParamIsNull(System.Int32 i)
+ public method abstract System.Boolean Select(System.Int32 index)
+ public method abstract System.Boolean TryParse(System.ReadOnlyMemory utf8Document, out ref System.String error)
+ public method abstract System.Object ReadParam(System.Int32 i, System.Type type)
+ public method abstract System.ReadOnlySpan ParamNameUtf8(System.Int32 i)
+ public method abstract System.ReadOnlySpan ParamRaw(System.Int32 i)
+ public method abstract System.Void Release()
+ public method abstract T ReadParam(System.Int32 i)
+ public property AustinHarris.JsonRpc.Serialization.JsonRpcIdKind IdKind { get; }
+ public property AustinHarris.JsonRpc.Serialization.JsonRpcParamsKind ParamsKind { get; }
+ public property AustinHarris.JsonRpc.Serialization.JsonRpcVersionKind VersionKind { get; }
+ public property System.Boolean HasMethod { get; }
+ public property System.Boolean IsBatch { get; }
+ public property System.Int32 Count { get; }
+ public property System.Int32 ParamCount { get; }
+ public property System.Object IdValue { get; }
+ public property System.Object ParamsValue { get; }
+ public property System.ReadOnlyMemory Document { get; }
+ public property System.ReadOnlySpan IdRaw { get; }
+ public property System.ReadOnlySpan