feat: 同步全部系统改动与文档

This commit is contained in:
2026-07-28 10:29:56 +08:00
parent 62f7632fc6
commit 1fa1ece06d
487 changed files with 267645 additions and 144 deletions

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,417 @@
<?xml version="1.0"?>
<doc>
<assembly>
<name>Microsoft.Bcl.AsyncInterfaces</name>
</assembly>
<members>
<member name="T:System.Threading.Tasks.Sources.ManualResetValueTaskSourceCore`1">
<summary>Provides the core logic for implementing a manual-reset <see cref="T:System.Threading.Tasks.Sources.IValueTaskSource"/> or <see cref="T:System.Threading.Tasks.Sources.IValueTaskSource`1"/>.</summary>
<typeparam name="TResult"></typeparam>
</member>
<member name="F:System.Threading.Tasks.Sources.ManualResetValueTaskSourceCore`1._continuation">
<summary>
The callback to invoke when the operation completes if <see cref="M:System.Threading.Tasks.Sources.ManualResetValueTaskSourceCore`1.OnCompleted(System.Action{System.Object},System.Object,System.Int16,System.Threading.Tasks.Sources.ValueTaskSourceOnCompletedFlags)"/> was called before the operation completed,
or <see cref="F:System.Threading.Tasks.Sources.ManualResetValueTaskSourceCoreShared.s_sentinel"/> if the operation completed before a callback was supplied,
or null if a callback hasn't yet been provided and the operation hasn't yet completed.
</summary>
</member>
<member name="F:System.Threading.Tasks.Sources.ManualResetValueTaskSourceCore`1._continuationState">
<summary>State to pass to <see cref="F:System.Threading.Tasks.Sources.ManualResetValueTaskSourceCore`1._continuation"/>.</summary>
</member>
<member name="F:System.Threading.Tasks.Sources.ManualResetValueTaskSourceCore`1._executionContext">
<summary><see cref="T:System.Threading.ExecutionContext"/> to flow to the callback, or null if no flowing is required.</summary>
</member>
<member name="F:System.Threading.Tasks.Sources.ManualResetValueTaskSourceCore`1._capturedContext">
<summary>
A "captured" <see cref="T:System.Threading.SynchronizationContext"/> or <see cref="T:System.Threading.Tasks.TaskScheduler"/> with which to invoke the callback,
or null if no special context is required.
</summary>
</member>
<member name="F:System.Threading.Tasks.Sources.ManualResetValueTaskSourceCore`1._completed">
<summary>Whether the current operation has completed.</summary>
</member>
<member name="F:System.Threading.Tasks.Sources.ManualResetValueTaskSourceCore`1._result">
<summary>The result with which the operation succeeded, or the default value if it hasn't yet completed or failed.</summary>
</member>
<member name="F:System.Threading.Tasks.Sources.ManualResetValueTaskSourceCore`1._error">
<summary>The exception with which the operation failed, or null if it hasn't yet completed or completed successfully.</summary>
</member>
<member name="F:System.Threading.Tasks.Sources.ManualResetValueTaskSourceCore`1._version">
<summary>The current version of this value, used to help prevent misuse.</summary>
</member>
<member name="P:System.Threading.Tasks.Sources.ManualResetValueTaskSourceCore`1.RunContinuationsAsynchronously">
<summary>Gets or sets whether to force continuations to run asynchronously.</summary>
<remarks>Continuations may run asynchronously if this is false, but they'll never run synchronously if this is true.</remarks>
</member>
<member name="M:System.Threading.Tasks.Sources.ManualResetValueTaskSourceCore`1.Reset">
<summary>Resets to prepare for the next operation.</summary>
</member>
<member name="M:System.Threading.Tasks.Sources.ManualResetValueTaskSourceCore`1.SetResult(`0)">
<summary>Completes with a successful result.</summary>
<param name="result">The result.</param>
</member>
<member name="M:System.Threading.Tasks.Sources.ManualResetValueTaskSourceCore`1.SetException(System.Exception)">
<summary>Complets with an error.</summary>
<param name="error"></param>
</member>
<member name="P:System.Threading.Tasks.Sources.ManualResetValueTaskSourceCore`1.Version">
<summary>Gets the operation version.</summary>
</member>
<member name="M:System.Threading.Tasks.Sources.ManualResetValueTaskSourceCore`1.GetStatus(System.Int16)">
<summary>Gets the status of the operation.</summary>
<param name="token">Opaque value that was provided to the <see cref="T:System.Threading.Tasks.ValueTask"/>'s constructor.</param>
</member>
<member name="M:System.Threading.Tasks.Sources.ManualResetValueTaskSourceCore`1.GetResult(System.Int16)">
<summary>Gets the result of the operation.</summary>
<param name="token">Opaque value that was provided to the <see cref="T:System.Threading.Tasks.ValueTask"/>'s constructor.</param>
</member>
<member name="M:System.Threading.Tasks.Sources.ManualResetValueTaskSourceCore`1.OnCompleted(System.Action{System.Object},System.Object,System.Int16,System.Threading.Tasks.Sources.ValueTaskSourceOnCompletedFlags)">
<summary>Schedules the continuation action for this operation.</summary>
<param name="continuation">The continuation to invoke when the operation has completed.</param>
<param name="state">The state object to pass to <paramref name="continuation"/> when it's invoked.</param>
<param name="token">Opaque value that was provided to the <see cref="T:System.Threading.Tasks.ValueTask"/>'s constructor.</param>
<param name="flags">The flags describing the behavior of the continuation.</param>
</member>
<member name="M:System.Threading.Tasks.Sources.ManualResetValueTaskSourceCore`1.ValidateToken(System.Int16)">
<summary>Ensures that the specified token matches the current version.</summary>
<param name="token">The token supplied by <see cref="T:System.Threading.Tasks.ValueTask"/>.</param>
</member>
<member name="M:System.Threading.Tasks.Sources.ManualResetValueTaskSourceCore`1.SignalCompletion">
<summary>Signals that the operation has completed. Invoked after the result or error has been set.</summary>
</member>
<member name="M:System.Threading.Tasks.Sources.ManualResetValueTaskSourceCore`1.InvokeContinuation">
<summary>
Invokes the continuation with the appropriate captured context / scheduler.
This assumes that if <see cref="F:System.Threading.Tasks.Sources.ManualResetValueTaskSourceCore`1._executionContext"/> is not null we're already
running within that <see cref="T:System.Threading.ExecutionContext"/>.
</summary>
</member>
<member name="T:System.Threading.Tasks.TaskAsyncEnumerableExtensions">
<summary>Provides a set of static methods for configuring <see cref="T:System.Threading.Tasks.Task"/>-related behaviors on asynchronous enumerables and disposables.</summary>
</member>
<member name="M:System.Threading.Tasks.TaskAsyncEnumerableExtensions.ConfigureAwait(System.IAsyncDisposable,System.Boolean)">
<summary>Configures how awaits on the tasks returned from an async disposable will be performed.</summary>
<param name="source">The source async disposable.</param>
<param name="continueOnCapturedContext">Whether to capture and marshal back to the current context.</param>
<returns>The configured async disposable.</returns>
</member>
<member name="M:System.Threading.Tasks.TaskAsyncEnumerableExtensions.ConfigureAwait``1(System.Collections.Generic.IAsyncEnumerable{``0},System.Boolean)">
<summary>Configures how awaits on the tasks returned from an async iteration will be performed.</summary>
<typeparam name="T">The type of the objects being iterated.</typeparam>
<param name="source">The source enumerable being iterated.</param>
<param name="continueOnCapturedContext">Whether to capture and marshal back to the current context.</param>
<returns>The configured enumerable.</returns>
</member>
<member name="M:System.Threading.Tasks.TaskAsyncEnumerableExtensions.WithCancellation``1(System.Collections.Generic.IAsyncEnumerable{``0},System.Threading.CancellationToken)">
<summary>Sets the <see cref="T:System.Threading.CancellationToken"/> to be passed to <see cref="M:System.Collections.Generic.IAsyncEnumerable`1.GetAsyncEnumerator(System.Threading.CancellationToken)"/> when iterating.</summary>
<typeparam name="T">The type of the objects being iterated.</typeparam>
<param name="source">The source enumerable being iterated.</param>
<param name="cancellationToken">The <see cref="T:System.Threading.CancellationToken"/> to use.</param>
<returns>The configured enumerable.</returns>
</member>
<member name="T:System.Runtime.CompilerServices.AsyncIteratorMethodBuilder">
<summary>Represents a builder for asynchronous iterators.</summary>
</member>
<member name="M:System.Runtime.CompilerServices.AsyncIteratorMethodBuilder.Create">
<summary>Creates an instance of the <see cref="T:System.Runtime.CompilerServices.AsyncIteratorMethodBuilder"/> struct.</summary>
<returns>The initialized instance.</returns>
</member>
<member name="M:System.Runtime.CompilerServices.AsyncIteratorMethodBuilder.MoveNext``1(``0@)">
<summary>Invokes <see cref="M:System.Runtime.CompilerServices.IAsyncStateMachine.MoveNext"/> on the state machine while guarding the <see cref="T:System.Threading.ExecutionContext"/>.</summary>
<typeparam name="TStateMachine">The type of the state machine.</typeparam>
<param name="stateMachine">The state machine instance, passed by reference.</param>
</member>
<member name="M:System.Runtime.CompilerServices.AsyncIteratorMethodBuilder.AwaitOnCompleted``2(``0@,``1@)">
<summary>Schedules the state machine to proceed to the next action when the specified awaiter completes.</summary>
<typeparam name="TAwaiter">The type of the awaiter.</typeparam>
<typeparam name="TStateMachine">The type of the state machine.</typeparam>
<param name="awaiter">The awaiter.</param>
<param name="stateMachine">The state machine.</param>
</member>
<member name="M:System.Runtime.CompilerServices.AsyncIteratorMethodBuilder.AwaitUnsafeOnCompleted``2(``0@,``1@)">
<summary>Schedules the state machine to proceed to the next action when the specified awaiter completes.</summary>
<typeparam name="TAwaiter">The type of the awaiter.</typeparam>
<typeparam name="TStateMachine">The type of the state machine.</typeparam>
<param name="awaiter">The awaiter.</param>
<param name="stateMachine">The state machine.</param>
</member>
<member name="M:System.Runtime.CompilerServices.AsyncIteratorMethodBuilder.Complete">
<summary>Marks iteration as being completed, whether successfully or otherwise.</summary>
</member>
<member name="P:System.Runtime.CompilerServices.AsyncIteratorMethodBuilder.ObjectIdForDebugger">
<summary>Gets an object that may be used to uniquely identify this builder to the debugger.</summary>
</member>
<member name="T:System.Runtime.CompilerServices.AsyncIteratorStateMachineAttribute">
<summary>Indicates whether a method is an asynchronous iterator.</summary>
</member>
<member name="M:System.Runtime.CompilerServices.AsyncIteratorStateMachineAttribute.#ctor(System.Type)">
<summary>Initializes a new instance of the <see cref="T:System.Runtime.CompilerServices.AsyncIteratorStateMachineAttribute"/> class.</summary>
<param name="stateMachineType">The type object for the underlying state machine type that's used to implement a state machine method.</param>
</member>
<member name="T:System.Runtime.CompilerServices.ConfiguredAsyncDisposable">
<summary>Provides a type that can be used to configure how awaits on an <see cref="T:System.IAsyncDisposable"/> are performed.</summary>
</member>
<member name="M:System.Runtime.CompilerServices.ConfiguredAsyncDisposable.DisposeAsync">
<summary>Asynchronously releases the unmanaged resources used by the <see cref="T:System.Runtime.CompilerServices.ConfiguredAsyncDisposable" />.</summary>
<returns>A task that represents the asynchronous dispose operation.</returns>
</member>
<member name="T:System.Runtime.CompilerServices.ConfiguredCancelableAsyncEnumerable`1">
<summary>Provides an awaitable async enumerable that enables cancelable iteration and configured awaits.</summary>
</member>
<member name="M:System.Runtime.CompilerServices.ConfiguredCancelableAsyncEnumerable`1.ConfigureAwait(System.Boolean)">
<summary>Configures how awaits on the tasks returned from an async iteration will be performed.</summary>
<param name="continueOnCapturedContext">Whether to capture and marshal back to the current context.</param>
<returns>The configured enumerable.</returns>
<remarks>This will replace any previous value set by <see cref="M:System.Runtime.CompilerServices.ConfiguredCancelableAsyncEnumerable`1.ConfigureAwait(System.Boolean)"/> for this iteration.</remarks>
</member>
<member name="M:System.Runtime.CompilerServices.ConfiguredCancelableAsyncEnumerable`1.WithCancellation(System.Threading.CancellationToken)">
<summary>Sets the <see cref="T:System.Threading.CancellationToken"/> to be passed to <see cref="M:System.Collections.Generic.IAsyncEnumerable`1.GetAsyncEnumerator(System.Threading.CancellationToken)"/> when iterating.</summary>
<param name="cancellationToken">The <see cref="T:System.Threading.CancellationToken"/> to use.</param>
<returns>The configured enumerable.</returns>
<remarks>This will replace any previous <see cref="T:System.Threading.CancellationToken"/> set by <see cref="M:System.Runtime.CompilerServices.ConfiguredCancelableAsyncEnumerable`1.WithCancellation(System.Threading.CancellationToken)"/> for this iteration.</remarks>
</member>
<member name="M:System.Runtime.CompilerServices.ConfiguredCancelableAsyncEnumerable`1.GetAsyncEnumerator">
<summary>Returns an enumerator that iterates asynchronously through collections that enables cancelable iteration and configured awaits.</summary>
<returns>An enumerator for the <see cref="T:System.Runtime.CompilerServices.ConfiguredCancelableAsyncEnumerable`1" /> class.</returns>
</member>
<member name="T:System.Runtime.CompilerServices.ConfiguredCancelableAsyncEnumerable`1.Enumerator">
<summary>Provides an awaitable async enumerator that enables cancelable iteration and configured awaits.</summary>
</member>
<member name="M:System.Runtime.CompilerServices.ConfiguredCancelableAsyncEnumerable`1.Enumerator.MoveNextAsync">
<summary>Advances the enumerator asynchronously to the next element of the collection.</summary>
<returns>
A <see cref="T:System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable`1"/> that will complete with a result of <c>true</c>
if the enumerator was successfully advanced to the next element, or <c>false</c> if the enumerator has
passed the end of the collection.
</returns>
</member>
<member name="P:System.Runtime.CompilerServices.ConfiguredCancelableAsyncEnumerable`1.Enumerator.Current">
<summary>Gets the element in the collection at the current position of the enumerator.</summary>
</member>
<member name="M:System.Runtime.CompilerServices.ConfiguredCancelableAsyncEnumerable`1.Enumerator.DisposeAsync">
<summary>
Performs application-defined tasks associated with freeing, releasing, or
resetting unmanaged resources asynchronously.
</summary>
</member>
<member name="T:System.Runtime.CompilerServices.EnumeratorCancellationAttribute">
<summary>Allows users of async-enumerable methods to mark the parameter that should receive the cancellation token value from <see cref="M:System.Collections.Generic.IAsyncEnumerable`1.GetAsyncEnumerator(System.Threading.CancellationToken)" />.</summary>
</member>
<member name="M:System.Runtime.CompilerServices.EnumeratorCancellationAttribute.#ctor">
<summary>Initializes a new instance of the <see cref="T:System.Runtime.CompilerServices.EnumeratorCancellationAttribute" /> class.</summary>
</member>
<member name="T:System.Runtime.InteropServices.LibraryImportAttribute">
<summary>
Attribute used to indicate a source generator should create a function for marshalling
arguments instead of relying on the runtime to generate an equivalent marshalling function at run-time.
</summary>
<remarks>
This attribute is meaningless if the source generator associated with it is not enabled.
The current built-in source generator only supports C# and only supplies an implementation when
applied to static, partial, non-generic methods.
</remarks>
</member>
<member name="M:System.Runtime.InteropServices.LibraryImportAttribute.#ctor(System.String)">
<summary>
Initializes a new instance of the <see cref="T:System.Runtime.InteropServices.LibraryImportAttribute"/>.
</summary>
<param name="libraryName">Name of the library containing the import.</param>
</member>
<member name="P:System.Runtime.InteropServices.LibraryImportAttribute.LibraryName">
<summary>
Gets the name of the library containing the import.
</summary>
</member>
<member name="P:System.Runtime.InteropServices.LibraryImportAttribute.EntryPoint">
<summary>
Gets or sets the name of the entry point to be called.
</summary>
</member>
<member name="P:System.Runtime.InteropServices.LibraryImportAttribute.StringMarshalling">
<summary>
Gets or sets how to marshal string arguments to the method.
</summary>
<remarks>
If this field is set to a value other than <see cref="F:System.Runtime.InteropServices.StringMarshalling.Custom" />,
<see cref="P:System.Runtime.InteropServices.LibraryImportAttribute.StringMarshallingCustomType" /> must not be specified.
</remarks>
</member>
<member name="P:System.Runtime.InteropServices.LibraryImportAttribute.StringMarshallingCustomType">
<summary>
Gets or sets the <see cref="T:System.Type"/> used to control how string arguments to the method are marshalled.
</summary>
<remarks>
If this field is specified, <see cref="P:System.Runtime.InteropServices.LibraryImportAttribute.StringMarshalling" /> must not be specified
or must be set to <see cref="F:System.Runtime.InteropServices.StringMarshalling.Custom" />.
</remarks>
</member>
<member name="P:System.Runtime.InteropServices.LibraryImportAttribute.SetLastError">
<summary>
Gets or sets whether the callee sets an error (SetLastError on Windows or errno
on other platforms) before returning from the attributed method.
</summary>
</member>
<member name="T:System.Runtime.InteropServices.StringMarshalling">
<summary>
Specifies how strings should be marshalled for generated p/invokes
</summary>
</member>
<member name="F:System.Runtime.InteropServices.StringMarshalling.Custom">
<summary>
Indicates the user is supplying a specific marshaller in <see cref="P:System.Runtime.InteropServices.LibraryImportAttribute.StringMarshallingCustomType"/>.
</summary>
</member>
<member name="F:System.Runtime.InteropServices.StringMarshalling.Utf8">
<summary>
Use the platform-provided UTF-8 marshaller.
</summary>
</member>
<member name="F:System.Runtime.InteropServices.StringMarshalling.Utf16">
<summary>
Use the platform-provided UTF-16 marshaller.
</summary>
</member>
<member name="T:System.Collections.Generic.IAsyncEnumerable`1">
<summary>Exposes an enumerator that provides asynchronous iteration over values of a specified type.</summary>
<typeparam name="T">The type of values to enumerate.</typeparam>
</member>
<member name="M:System.Collections.Generic.IAsyncEnumerable`1.GetAsyncEnumerator(System.Threading.CancellationToken)">
<summary>Returns an enumerator that iterates asynchronously through the collection.</summary>
<param name="cancellationToken">A <see cref="T:System.Threading.CancellationToken"/> that may be used to cancel the asynchronous iteration.</param>
<returns>An enumerator that can be used to iterate asynchronously through the collection.</returns>
</member>
<member name="T:System.Collections.Generic.IAsyncEnumerator`1">
<summary>Supports a simple asynchronous iteration over a generic collection.</summary>
<typeparam name="T">The type of objects to enumerate.</typeparam>
</member>
<member name="M:System.Collections.Generic.IAsyncEnumerator`1.MoveNextAsync">
<summary>Advances the enumerator asynchronously to the next element of the collection.</summary>
<returns>
A <see cref="T:System.Threading.Tasks.ValueTask`1"/> that will complete with a result of <c>true</c> if the enumerator
was successfully advanced to the next element, or <c>false</c> if the enumerator has passed the end
of the collection.
</returns>
</member>
<member name="P:System.Collections.Generic.IAsyncEnumerator`1.Current">
<summary>Gets the element in the collection at the current position of the enumerator.</summary>
</member>
<member name="T:System.IAsyncDisposable">
<summary>Provides a mechanism for releasing unmanaged resources asynchronously.</summary>
</member>
<member name="M:System.IAsyncDisposable.DisposeAsync">
<summary>
Performs application-defined tasks associated with freeing, releasing, or
resetting unmanaged resources asynchronously.
</summary>
</member>
<member name="T:System.Diagnostics.CodeAnalysis.AllowNullAttribute">
<summary>Specifies that null is allowed as an input even if the corresponding type disallows it.</summary>
</member>
<member name="T:System.Diagnostics.CodeAnalysis.DisallowNullAttribute">
<summary>Specifies that null is disallowed as an input even if the corresponding type allows it.</summary>
</member>
<member name="T:System.Diagnostics.CodeAnalysis.MaybeNullAttribute">
<summary>Specifies that an output may be null even if the corresponding type disallows it.</summary>
</member>
<member name="T:System.Diagnostics.CodeAnalysis.NotNullAttribute">
<summary>Specifies that an output will not be null even if the corresponding type allows it. Specifies that an input argument was not null when the call returns.</summary>
</member>
<member name="T:System.Diagnostics.CodeAnalysis.MaybeNullWhenAttribute">
<summary>Specifies that when a method returns <see cref="P:System.Diagnostics.CodeAnalysis.MaybeNullWhenAttribute.ReturnValue"/>, the parameter may be null even if the corresponding type disallows it.</summary>
</member>
<member name="M:System.Diagnostics.CodeAnalysis.MaybeNullWhenAttribute.#ctor(System.Boolean)">
<summary>Initializes the attribute with the specified return value condition.</summary>
<param name="returnValue">
The return value condition. If the method returns this value, the associated parameter may be null.
</param>
</member>
<member name="P:System.Diagnostics.CodeAnalysis.MaybeNullWhenAttribute.ReturnValue">
<summary>Gets the return value condition.</summary>
</member>
<member name="T:System.Diagnostics.CodeAnalysis.NotNullWhenAttribute">
<summary>Specifies that when a method returns <see cref="P:System.Diagnostics.CodeAnalysis.NotNullWhenAttribute.ReturnValue"/>, the parameter will not be null even if the corresponding type allows it.</summary>
</member>
<member name="M:System.Diagnostics.CodeAnalysis.NotNullWhenAttribute.#ctor(System.Boolean)">
<summary>Initializes the attribute with the specified return value condition.</summary>
<param name="returnValue">
The return value condition. If the method returns this value, the associated parameter will not be null.
</param>
</member>
<member name="P:System.Diagnostics.CodeAnalysis.NotNullWhenAttribute.ReturnValue">
<summary>Gets the return value condition.</summary>
</member>
<member name="T:System.Diagnostics.CodeAnalysis.NotNullIfNotNullAttribute">
<summary>Specifies that the output will be non-null if the named parameter is non-null.</summary>
</member>
<member name="M:System.Diagnostics.CodeAnalysis.NotNullIfNotNullAttribute.#ctor(System.String)">
<summary>Initializes the attribute with the associated parameter name.</summary>
<param name="parameterName">
The associated parameter name. The output will be non-null if the argument to the parameter specified is non-null.
</param>
</member>
<member name="P:System.Diagnostics.CodeAnalysis.NotNullIfNotNullAttribute.ParameterName">
<summary>Gets the associated parameter name.</summary>
</member>
<member name="T:System.Diagnostics.CodeAnalysis.DoesNotReturnAttribute">
<summary>Applied to a method that will never return under any circumstance.</summary>
</member>
<member name="T:System.Diagnostics.CodeAnalysis.DoesNotReturnIfAttribute">
<summary>Specifies that the method will not return if the associated Boolean parameter is passed the specified value.</summary>
</member>
<member name="M:System.Diagnostics.CodeAnalysis.DoesNotReturnIfAttribute.#ctor(System.Boolean)">
<summary>Initializes the attribute with the specified parameter value.</summary>
<param name="parameterValue">
The condition parameter value. Code after the method will be considered unreachable by diagnostics if the argument to
the associated parameter matches this value.
</param>
</member>
<member name="P:System.Diagnostics.CodeAnalysis.DoesNotReturnIfAttribute.ParameterValue">
<summary>Gets the condition parameter value.</summary>
</member>
<member name="T:System.Diagnostics.CodeAnalysis.MemberNotNullAttribute">
<summary>Specifies that the method or property will ensure that the listed field and property members have not-null values.</summary>
</member>
<member name="M:System.Diagnostics.CodeAnalysis.MemberNotNullAttribute.#ctor(System.String)">
<summary>Initializes the attribute with a field or property member.</summary>
<param name="member">
The field or property member that is promised to be not-null.
</param>
</member>
<member name="M:System.Diagnostics.CodeAnalysis.MemberNotNullAttribute.#ctor(System.String[])">
<summary>Initializes the attribute with the list of field and property members.</summary>
<param name="members">
The list of field and property members that are promised to be not-null.
</param>
</member>
<member name="P:System.Diagnostics.CodeAnalysis.MemberNotNullAttribute.Members">
<summary>Gets field or property member names.</summary>
</member>
<member name="T:System.Diagnostics.CodeAnalysis.MemberNotNullWhenAttribute">
<summary>Specifies that the method or property will ensure that the listed field and property members have not-null values when returning with the specified return value condition.</summary>
</member>
<member name="M:System.Diagnostics.CodeAnalysis.MemberNotNullWhenAttribute.#ctor(System.Boolean,System.String)">
<summary>Initializes the attribute with the specified return value condition and a field or property member.</summary>
<param name="returnValue">
The return value condition. If the method returns this value, the associated field or property member will not be null.
</param>
<param name="member">
The field or property member that is promised to be not-null.
</param>
</member>
<member name="M:System.Diagnostics.CodeAnalysis.MemberNotNullWhenAttribute.#ctor(System.Boolean,System.String[])">
<summary>Initializes the attribute with the specified return value condition and list of field and property members.</summary>
<param name="returnValue">
The return value condition. If the method returns this value, the associated field and property members will not be null.
</param>
<param name="members">
The list of field and property members that are promised to be not-null.
</param>
</member>
<member name="P:System.Diagnostics.CodeAnalysis.MemberNotNullWhenAttribute.ReturnValue">
<summary>Gets the return value condition.</summary>
</member>
<member name="P:System.Diagnostics.CodeAnalysis.MemberNotNullWhenAttribute.Members">
<summary>Gets field or property member names.</summary>
</member>
</members>
</doc>

View File

@@ -0,0 +1,542 @@
<?xml version="1.0"?>
<doc>
<assembly>
<name>Microsoft.Extensions.Caching.Memory</name>
</assembly>
<members>
<member name="P:Microsoft.Extensions.Caching.Memory.CacheEntry.SlidingExpiration">
<summary>
Gets or sets how long a cache entry can be inactive (e.g. not accessed) before it will be removed.
This will not extend the entry lifetime beyond the absolute expiration (if set).
</summary>
</member>
<member name="P:Microsoft.Extensions.Caching.Memory.CacheEntry.ExpirationTokens">
<summary>
Gets the <see cref="T:Microsoft.Extensions.Primitives.IChangeToken"/> instances which cause the cache entry to expire.
</summary>
</member>
<member name="P:Microsoft.Extensions.Caching.Memory.CacheEntry.PostEvictionCallbacks">
<summary>
Gets or sets the callbacks will be fired after the cache entry is evicted from the cache.
</summary>
</member>
<member name="P:Microsoft.Extensions.Caching.Memory.CacheEntry.Priority">
<summary>
Gets or sets the priority for keeping the cache entry in the cache during a
memory pressure triggered cleanup. The default is <see cref="F:Microsoft.Extensions.Caching.Memory.CacheItemPriority.Normal"/>.
</summary>
</member>
<member name="T:Microsoft.Extensions.Caching.Memory.MemoryCache">
<summary>
An implementation of <see cref="T:Microsoft.Extensions.Caching.Memory.IMemoryCache"/> using a dictionary to
store its entries.
</summary>
</member>
<member name="M:Microsoft.Extensions.Caching.Memory.MemoryCache.#ctor(Microsoft.Extensions.Options.IOptions{Microsoft.Extensions.Caching.Memory.MemoryCacheOptions})">
<summary>
Creates a new <see cref="T:Microsoft.Extensions.Caching.Memory.MemoryCache"/> instance.
</summary>
<param name="optionsAccessor">The options of the cache.</param>
</member>
<member name="M:Microsoft.Extensions.Caching.Memory.MemoryCache.#ctor(Microsoft.Extensions.Options.IOptions{Microsoft.Extensions.Caching.Memory.MemoryCacheOptions},Microsoft.Extensions.Logging.ILoggerFactory)">
<summary>
Creates a new <see cref="T:Microsoft.Extensions.Caching.Memory.MemoryCache"/> instance.
</summary>
<param name="optionsAccessor">The options of the cache.</param>
<param name="loggerFactory">The factory used to create loggers.</param>
</member>
<member name="M:Microsoft.Extensions.Caching.Memory.MemoryCache.Finalize">
<summary>
Cleans up the background collection events.
</summary>
</member>
<member name="P:Microsoft.Extensions.Caching.Memory.MemoryCache.Count">
<summary>
Gets the count of the current entries for diagnostic purposes.
</summary>
</member>
<member name="P:Microsoft.Extensions.Caching.Memory.MemoryCache.Keys">
<summary>
Gets an enumerable of the all the keys in the <see cref="T:Microsoft.Extensions.Caching.Memory.MemoryCache"/>.
</summary>
</member>
<member name="P:Microsoft.Extensions.Caching.Memory.MemoryCache.Size">
<summary>
Internal accessor for Size for testing only.
Note that this is only eventually consistent with the contents of the collection.
See comment on <see cref="T:Microsoft.Extensions.Caching.Memory.MemoryCache.CoherentState"/>.
</summary>
</member>
<member name="M:Microsoft.Extensions.Caching.Memory.MemoryCache.CreateEntry(System.Object)">
<inheritdoc />
</member>
<member name="M:Microsoft.Extensions.Caching.Memory.MemoryCache.TryGetValue(System.Object,System.Object@)">
<inheritdoc />
</member>
<member name="M:Microsoft.Extensions.Caching.Memory.MemoryCache.Remove(System.Object)">
<inheritdoc />
</member>
<member name="M:Microsoft.Extensions.Caching.Memory.MemoryCache.Clear">
<summary>
Removes all keys and values from the cache.
</summary>
</member>
<member name="M:Microsoft.Extensions.Caching.Memory.MemoryCache.GetCurrentStatistics">
<summary>
Gets a snapshot of the current statistics for the memory cache.
</summary>
<returns>Returns <see langword="null"/> if statistics are not being tracked because <see cref="P:Microsoft.Extensions.Caching.Memory.MemoryCacheOptions.TrackStatistics" /> is <see langword="false"/>.</returns>
</member>
<member name="M:Microsoft.Extensions.Caching.Memory.MemoryCache.UpdateCacheSizeExceedsCapacity(Microsoft.Extensions.Caching.Memory.CacheEntry,Microsoft.Extensions.Caching.Memory.CacheEntry,Microsoft.Extensions.Caching.Memory.MemoryCache.CoherentState)">
<summary>
Determines if increasing the cache size by the size of the
entry would cause it to exceed any size limit on the cache.
</summary>
<returns>
<see langword="true" /> if increasing the cache size would
cause it to exceed the size limit; otherwise, <see langword="false" />.
</returns>
</member>
<member name="M:Microsoft.Extensions.Caching.Memory.MemoryCache.Compact(System.Double)">
Remove at least the given percentage (0.10 for 10%) of the total entries (or estimated memory?), according to the following policy:
1. Remove all expired items.
2. Bucket by CacheItemPriority.
3. Least recently used objects.
?. Items with the soonest absolute expiration.
?. Items with the soonest sliding expiration.
?. Larger objects - estimated by object graph size, inaccurate.
</member>
<member name="M:Microsoft.Extensions.Caching.Memory.MemoryCache.Dispose">
<inheritdoc />
</member>
<member name="M:Microsoft.Extensions.Caching.Memory.MemoryCache.Dispose(System.Boolean)">
<summary>
Disposes the cache and clears all entries.
</summary>
<param name="disposing"><see langword="true" /> to dispose the object resources; <see langword="false" /> to take no action.</param>
</member>
<member name="T:Microsoft.Extensions.Caching.Memory.MemoryCache.CoherentState">
<summary>
Wrapper for the memory cache entries collection.
Entries may have various sizes. If a size limit has been set, the cache keeps track of the aggregate of all the entries' sizes
in order to trigger compaction when the size limit is exceeded.
For performance reasons, the size is not updated atomically with the collection, but is only made eventually consistent.
When the memory cache is cleared, it replaces the backing collection entirely. This may occur in parallel with operations
like add, set, remove, and compact which may modify the collection and thus its overall size.
To keep the overall size eventually consistent, therefore, the collection and the overall size are wrapped in this CoherentState
object. Individual operations take a local reference to this wrapper object while they work, and make size updates to this object.
Clearing the cache simply replaces the object, so that any still in progress updates do not affect the overall size value for
the new backing collection.
</summary>
</member>
<member name="T:Microsoft.Extensions.Caching.Memory.MemoryCacheOptions">
<summary>
Specifies options for <see cref="T:Microsoft.Extensions.Caching.Memory.MemoryCache"/>.
</summary>
</member>
<member name="P:Microsoft.Extensions.Caching.Memory.MemoryCacheOptions.Clock">
<summary>
Gets or sets the clock used by the cache for expiration.
</summary>
</member>
<member name="P:Microsoft.Extensions.Caching.Memory.MemoryCacheOptions.ExpirationScanFrequency">
<summary>
Gets or sets the minimum length of time between successive scans for expired items.
</summary>
</member>
<member name="P:Microsoft.Extensions.Caching.Memory.MemoryCacheOptions.SizeLimit">
<summary>
Gets or sets the maximum size of the cache.
</summary>
</member>
<member name="P:Microsoft.Extensions.Caching.Memory.MemoryCacheOptions.CompactOnMemoryPressure">
<summary>
Gets or sets a value that indicates whether the cache is compacted when the maximum size is exceeded.
</summary>
</member>
<member name="P:Microsoft.Extensions.Caching.Memory.MemoryCacheOptions.CompactionPercentage">
<summary>
Gets or sets the amount the cache is compacted by when the maximum size is exceeded.
</summary>
</member>
<member name="P:Microsoft.Extensions.Caching.Memory.MemoryCacheOptions.TrackLinkedCacheEntries">
<summary>
Gets or sets a value that indicates whether linked entries are tracked.
</summary>
<value>
<see langword="true"/> if linked entries are tracked; otherwise, <see langword="false" />.
The default is <see langword="false" />.
</value>
<remarks>Prior to .NET 7, this feature was always enabled.</remarks>
</member>
<member name="P:Microsoft.Extensions.Caching.Memory.MemoryCacheOptions.TrackStatistics">
<summary>
Gets or sets a value that indicates whether memory cache statistics are tracked.
</summary>
<value>
<see langword="true"/> if memory cache statistics are tracked; otherwise, <see langword="false" />.
The default is <see langword="false" />.
</value>
</member>
<member name="T:Microsoft.Extensions.Caching.Memory.MemoryDistributedCacheOptions">
<summary>
Specifies options for <see cref="T:Microsoft.Extensions.Caching.Memory.MemoryDistributedCacheOptions"/>.
</summary>
</member>
<member name="M:Microsoft.Extensions.Caching.Memory.MemoryDistributedCacheOptions.#ctor">
<summary>
Initializes a new instance of <see cref="T:Microsoft.Extensions.Caching.Memory.MemoryDistributedCacheOptions"/>.
</summary>
</member>
<member name="T:Microsoft.Extensions.Caching.Distributed.MemoryDistributedCache">
<summary>
Implements <see cref="T:Microsoft.Extensions.Caching.Distributed.IDistributedCache"/> using <see cref="T:Microsoft.Extensions.Caching.Memory.IMemoryCache"/>.
</summary>
</member>
<member name="M:Microsoft.Extensions.Caching.Distributed.MemoryDistributedCache.#ctor(Microsoft.Extensions.Options.IOptions{Microsoft.Extensions.Caching.Memory.MemoryDistributedCacheOptions})">
<summary>
Creates a new <see cref="T:Microsoft.Extensions.Caching.Distributed.MemoryDistributedCache"/> instance.
</summary>
<param name="optionsAccessor">The options of the cache.</param>
</member>
<member name="M:Microsoft.Extensions.Caching.Distributed.MemoryDistributedCache.#ctor(Microsoft.Extensions.Options.IOptions{Microsoft.Extensions.Caching.Memory.MemoryDistributedCacheOptions},Microsoft.Extensions.Logging.ILoggerFactory)">
<summary>
Creates a new <see cref="T:Microsoft.Extensions.Caching.Distributed.MemoryDistributedCache"/> instance.
</summary>
<param name="optionsAccessor">The options of the cache.</param>
<param name="loggerFactory">The logger factory to create <see cref="T:Microsoft.Extensions.Logging.ILogger"/> used to log messages.</param>
</member>
<member name="M:Microsoft.Extensions.Caching.Distributed.MemoryDistributedCache.Get(System.String)">
<summary>
Gets the specified item associated with a key from the <see cref="T:Microsoft.Extensions.Caching.Memory.IMemoryCache"/> as a byte array.
</summary>
<param name="key">The key of the item to get.</param>
<returns>The byte array value of the key.</returns>
</member>
<member name="M:Microsoft.Extensions.Caching.Distributed.MemoryDistributedCache.GetAsync(System.String,System.Threading.CancellationToken)">
<summary>
Asynchronously gets the specified item associated with a key from the <see cref="T:Microsoft.Extensions.Caching.Memory.IMemoryCache"/> as a byte array.
</summary>
<param name="key">The key of the item to get.</param>
<param name="token">The <see cref="T:System.Threading.CancellationToken"/> to use to cancel operation.</param>
<returns>The task for getting the byte array value associated with the specified key from the cache.</returns>
</member>
<member name="M:Microsoft.Extensions.Caching.Distributed.MemoryDistributedCache.Set(System.String,System.Byte[],Microsoft.Extensions.Caching.Distributed.DistributedCacheEntryOptions)">
<summary>
Sets the specified item associated with a key in the <see cref="T:Microsoft.Extensions.Caching.Memory.IMemoryCache"/> as a byte array.
</summary>
<param name="key">The key of the item to set.</param>
<param name="value">The byte array value of the item to set.</param>
<param name="options">The cache options for the item to set.</param>
</member>
<member name="M:Microsoft.Extensions.Caching.Distributed.MemoryDistributedCache.SetAsync(System.String,System.Byte[],Microsoft.Extensions.Caching.Distributed.DistributedCacheEntryOptions,System.Threading.CancellationToken)">
<summary>
Asynchronously sets the specified item associated with a key in the <see cref="T:Microsoft.Extensions.Caching.Memory.IMemoryCache"/> as a byte array.
</summary>
<param name="key">The key of the item to set.</param>
<param name="value">The byte array value of the item to set.</param>
<param name="options">The cache options for the item to set.</param>
<param name="token">The <see cref="T:System.Threading.CancellationToken"/> to use to cancel operation.</param>
<returns>The task for setting the byte array value associated with the specified key in the cache.</returns>
</member>
<member name="M:Microsoft.Extensions.Caching.Distributed.MemoryDistributedCache.Refresh(System.String)">
<summary>
Refreshes the specified item associated with a key from the <see cref="T:Microsoft.Extensions.Caching.Memory.IMemoryCache"/>.
</summary>
<param name="key">The key of the item to refresh.</param>
</member>
<member name="M:Microsoft.Extensions.Caching.Distributed.MemoryDistributedCache.RefreshAsync(System.String,System.Threading.CancellationToken)">
<summary>
Asynchronously refreshes the specified item associated with a key from the <see cref="T:Microsoft.Extensions.Caching.Memory.IMemoryCache"/>.
</summary>
<param name="key">The key of the item to refresh.</param>
<param name="token">The <see cref="T:System.Threading.CancellationToken"/> to use to cancel operation.</param>
<returns>The task for refreshing the specified key in the cache.</returns>
</member>
<member name="M:Microsoft.Extensions.Caching.Distributed.MemoryDistributedCache.Remove(System.String)">
<summary>
Removes the specified item associated with a key from the <see cref="T:Microsoft.Extensions.Caching.Memory.IMemoryCache"/>.
</summary>
<param name="key">The key of the item to remove.</param>
</member>
<member name="M:Microsoft.Extensions.Caching.Distributed.MemoryDistributedCache.RemoveAsync(System.String,System.Threading.CancellationToken)">
<summary>
Asynchronously removes the specified item associated with a key from the <see cref="T:Microsoft.Extensions.Caching.Memory.IMemoryCache"/>.
</summary>
<param name="key">The key of the item to remove.</param>
<param name="token">The <see cref="T:System.Threading.CancellationToken"/> to use to cancel operation.</param>
<returns>The task for removing the specified key from the cache.</returns>
</member>
<member name="T:Microsoft.Extensions.DependencyInjection.MemoryCacheServiceCollectionExtensions">
<summary>
Extension methods for setting up memory cache related services in an <see cref="T:Microsoft.Extensions.DependencyInjection.IServiceCollection" />.
</summary>
</member>
<member name="M:Microsoft.Extensions.DependencyInjection.MemoryCacheServiceCollectionExtensions.AddMemoryCache(Microsoft.Extensions.DependencyInjection.IServiceCollection)">
<summary>
Adds a non distributed in-memory implementation of <see cref="T:Microsoft.Extensions.Caching.Memory.IMemoryCache"/> to the
<see cref="T:Microsoft.Extensions.DependencyInjection.IServiceCollection" />.
</summary>
<param name="services">The <see cref="T:Microsoft.Extensions.DependencyInjection.IServiceCollection" /> to add services to.</param>
<returns>The <see cref="T:Microsoft.Extensions.DependencyInjection.IServiceCollection"/> so that additional calls can be chained.</returns>
</member>
<member name="M:Microsoft.Extensions.DependencyInjection.MemoryCacheServiceCollectionExtensions.AddMemoryCache(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Action{Microsoft.Extensions.Caching.Memory.MemoryCacheOptions})">
<summary>
Adds a non distributed in-memory implementation of <see cref="T:Microsoft.Extensions.Caching.Memory.IMemoryCache"/> to the
<see cref="T:Microsoft.Extensions.DependencyInjection.IServiceCollection" />.
</summary>
<param name="services">The <see cref="T:Microsoft.Extensions.DependencyInjection.IServiceCollection" /> to add services to.</param>
<param name="setupAction">
The <see cref="T:System.Action`1"/> to configure the provided <see cref="T:Microsoft.Extensions.Caching.Memory.MemoryCacheOptions"/>.
</param>
<returns>The <see cref="T:Microsoft.Extensions.DependencyInjection.IServiceCollection"/> so that additional calls can be chained.</returns>
</member>
<member name="M:Microsoft.Extensions.DependencyInjection.MemoryCacheServiceCollectionExtensions.AddDistributedMemoryCache(Microsoft.Extensions.DependencyInjection.IServiceCollection)">
<summary>
Adds a default implementation of <see cref="T:Microsoft.Extensions.Caching.Distributed.IDistributedCache"/> that stores items in memory
to the <see cref="T:Microsoft.Extensions.DependencyInjection.IServiceCollection" />. Frameworks that require a distributed cache to work
can safely add this dependency as part of their dependency list to ensure that there is at least
one implementation available.
</summary>
<remarks>
<see cref="M:Microsoft.Extensions.DependencyInjection.MemoryCacheServiceCollectionExtensions.AddDistributedMemoryCache(Microsoft.Extensions.DependencyInjection.IServiceCollection)"/> should only be used in single
server scenarios as this cache stores items in memory and doesn't expand across multiple machines.
For those scenarios it is recommended to use a proper distributed cache that can expand across
multiple machines.
</remarks>
<param name="services">The <see cref="T:Microsoft.Extensions.DependencyInjection.IServiceCollection" /> to add services to.</param>
<returns>The <see cref="T:Microsoft.Extensions.DependencyInjection.IServiceCollection"/> so that additional calls can be chained.</returns>
</member>
<member name="M:Microsoft.Extensions.DependencyInjection.MemoryCacheServiceCollectionExtensions.AddDistributedMemoryCache(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Action{Microsoft.Extensions.Caching.Memory.MemoryDistributedCacheOptions})">
<summary>
Adds a default implementation of <see cref="T:Microsoft.Extensions.Caching.Distributed.IDistributedCache"/> that stores items in memory
to the <see cref="T:Microsoft.Extensions.DependencyInjection.IServiceCollection" />. Frameworks that require a distributed cache to work
can safely add this dependency as part of their dependency list to ensure that there is at least
one implementation available.
</summary>
<remarks>
<see cref="M:Microsoft.Extensions.DependencyInjection.MemoryCacheServiceCollectionExtensions.AddDistributedMemoryCache(Microsoft.Extensions.DependencyInjection.IServiceCollection)"/> should only be used in single
server scenarios as this cache stores items in memory and doesn't expand across multiple machines.
For those scenarios it is recommended to use a proper distributed cache that can expand across
multiple machines.
</remarks>
<param name="services">The <see cref="T:Microsoft.Extensions.DependencyInjection.IServiceCollection" /> to add services to.</param>
<param name="setupAction">
The <see cref="T:System.Action`1"/> to configure the provided <see cref="T:Microsoft.Extensions.Caching.Memory.MemoryDistributedCacheOptions"/>.
</param>
<returns>The <see cref="T:Microsoft.Extensions.DependencyInjection.IServiceCollection"/> so that additional calls can be chained.</returns>
</member>
<member name="M:System.ThrowHelper.ThrowIfNull(System.Object,System.String)">
<summary>Throws an <see cref="T:System.ArgumentNullException"/> if <paramref name="argument"/> is null.</summary>
<param name="argument">The reference type argument to validate as non-null.</param>
<param name="paramName">The name of the parameter with which <paramref name="argument"/> corresponds.</param>
</member>
<member name="M:System.ThrowHelper.IfNullOrWhitespace(System.String,System.String)">
<summary>
Throws either an <see cref="T:System.ArgumentNullException"/> or an <see cref="T:System.ArgumentException"/>
if the specified string is <see langword="null"/> or whitespace respectively.
</summary>
<param name="argument">String to be checked for <see langword="null"/> or whitespace.</param>
<param name="paramName">The name of the parameter being checked.</param>
<returns>The original value of <paramref name="argument"/>.</returns>
</member>
<member name="T:System.Runtime.InteropServices.LibraryImportAttribute">
<summary>
Attribute used to indicate a source generator should create a function for marshalling
arguments instead of relying on the runtime to generate an equivalent marshalling function at run-time.
</summary>
<remarks>
This attribute is meaningless if the source generator associated with it is not enabled.
The current built-in source generator only supports C# and only supplies an implementation when
applied to static, partial, non-generic methods.
</remarks>
</member>
<member name="M:System.Runtime.InteropServices.LibraryImportAttribute.#ctor(System.String)">
<summary>
Initializes a new instance of the <see cref="T:System.Runtime.InteropServices.LibraryImportAttribute"/>.
</summary>
<param name="libraryName">Name of the library containing the import.</param>
</member>
<member name="P:System.Runtime.InteropServices.LibraryImportAttribute.LibraryName">
<summary>
Gets the name of the library containing the import.
</summary>
</member>
<member name="P:System.Runtime.InteropServices.LibraryImportAttribute.EntryPoint">
<summary>
Gets or sets the name of the entry point to be called.
</summary>
</member>
<member name="P:System.Runtime.InteropServices.LibraryImportAttribute.StringMarshalling">
<summary>
Gets or sets how to marshal string arguments to the method.
</summary>
<remarks>
If this field is set to a value other than <see cref="F:System.Runtime.InteropServices.StringMarshalling.Custom" />,
<see cref="P:System.Runtime.InteropServices.LibraryImportAttribute.StringMarshallingCustomType" /> must not be specified.
</remarks>
</member>
<member name="P:System.Runtime.InteropServices.LibraryImportAttribute.StringMarshallingCustomType">
<summary>
Gets or sets the <see cref="T:System.Type"/> used to control how string arguments to the method are marshalled.
</summary>
<remarks>
If this field is specified, <see cref="P:System.Runtime.InteropServices.LibraryImportAttribute.StringMarshalling" /> must not be specified
or must be set to <see cref="F:System.Runtime.InteropServices.StringMarshalling.Custom" />.
</remarks>
</member>
<member name="P:System.Runtime.InteropServices.LibraryImportAttribute.SetLastError">
<summary>
Gets or sets whether the callee sets an error (SetLastError on Windows or errno
on other platforms) before returning from the attributed method.
</summary>
</member>
<member name="T:System.Runtime.InteropServices.StringMarshalling">
<summary>
Specifies how strings should be marshalled for generated p/invokes
</summary>
</member>
<member name="F:System.Runtime.InteropServices.StringMarshalling.Custom">
<summary>
Indicates the user is supplying a specific marshaller in <see cref="P:System.Runtime.InteropServices.LibraryImportAttribute.StringMarshallingCustomType"/>.
</summary>
</member>
<member name="F:System.Runtime.InteropServices.StringMarshalling.Utf8">
<summary>
Use the platform-provided UTF-8 marshaller.
</summary>
</member>
<member name="F:System.Runtime.InteropServices.StringMarshalling.Utf16">
<summary>
Use the platform-provided UTF-16 marshaller.
</summary>
</member>
<member name="M:System.Marvin.ComputeHash32(System.ReadOnlySpan{System.Byte},System.UInt64)">
<summary>
Compute a Marvin hash and collapse it into a 32-bit hash.
</summary>
</member>
<member name="M:System.Marvin.ComputeHash32(System.Byte@,System.UInt32,System.UInt32,System.UInt32)">
<summary>
Compute a Marvin hash and collapse it into a 32-bit hash.
</summary>
</member>
<member name="P:System.SR.CacheEntryHasEmptySize">
<summary>Cache entry must specify a value for {0} when {1} is set.</summary>
</member>
<member name="T:System.Diagnostics.CodeAnalysis.AllowNullAttribute">
<summary>Specifies that null is allowed as an input even if the corresponding type disallows it.</summary>
</member>
<member name="T:System.Diagnostics.CodeAnalysis.DisallowNullAttribute">
<summary>Specifies that null is disallowed as an input even if the corresponding type allows it.</summary>
</member>
<member name="T:System.Diagnostics.CodeAnalysis.MaybeNullAttribute">
<summary>Specifies that an output may be null even if the corresponding type disallows it.</summary>
</member>
<member name="T:System.Diagnostics.CodeAnalysis.NotNullAttribute">
<summary>Specifies that an output will not be null even if the corresponding type allows it. Specifies that an input argument was not null when the call returns.</summary>
</member>
<member name="T:System.Diagnostics.CodeAnalysis.MaybeNullWhenAttribute">
<summary>Specifies that when a method returns <see cref="P:System.Diagnostics.CodeAnalysis.MaybeNullWhenAttribute.ReturnValue"/>, the parameter may be null even if the corresponding type disallows it.</summary>
</member>
<member name="M:System.Diagnostics.CodeAnalysis.MaybeNullWhenAttribute.#ctor(System.Boolean)">
<summary>Initializes the attribute with the specified return value condition.</summary>
<param name="returnValue">
The return value condition. If the method returns this value, the associated parameter may be null.
</param>
</member>
<member name="P:System.Diagnostics.CodeAnalysis.MaybeNullWhenAttribute.ReturnValue">
<summary>Gets the return value condition.</summary>
</member>
<member name="T:System.Diagnostics.CodeAnalysis.NotNullWhenAttribute">
<summary>Specifies that when a method returns <see cref="P:System.Diagnostics.CodeAnalysis.NotNullWhenAttribute.ReturnValue"/>, the parameter will not be null even if the corresponding type allows it.</summary>
</member>
<member name="M:System.Diagnostics.CodeAnalysis.NotNullWhenAttribute.#ctor(System.Boolean)">
<summary>Initializes the attribute with the specified return value condition.</summary>
<param name="returnValue">
The return value condition. If the method returns this value, the associated parameter will not be null.
</param>
</member>
<member name="P:System.Diagnostics.CodeAnalysis.NotNullWhenAttribute.ReturnValue">
<summary>Gets the return value condition.</summary>
</member>
<member name="T:System.Diagnostics.CodeAnalysis.NotNullIfNotNullAttribute">
<summary>Specifies that the output will be non-null if the named parameter is non-null.</summary>
</member>
<member name="M:System.Diagnostics.CodeAnalysis.NotNullIfNotNullAttribute.#ctor(System.String)">
<summary>Initializes the attribute with the associated parameter name.</summary>
<param name="parameterName">
The associated parameter name. The output will be non-null if the argument to the parameter specified is non-null.
</param>
</member>
<member name="P:System.Diagnostics.CodeAnalysis.NotNullIfNotNullAttribute.ParameterName">
<summary>Gets the associated parameter name.</summary>
</member>
<member name="T:System.Diagnostics.CodeAnalysis.DoesNotReturnAttribute">
<summary>Applied to a method that will never return under any circumstance.</summary>
</member>
<member name="T:System.Diagnostics.CodeAnalysis.DoesNotReturnIfAttribute">
<summary>Specifies that the method will not return if the associated Boolean parameter is passed the specified value.</summary>
</member>
<member name="M:System.Diagnostics.CodeAnalysis.DoesNotReturnIfAttribute.#ctor(System.Boolean)">
<summary>Initializes the attribute with the specified parameter value.</summary>
<param name="parameterValue">
The condition parameter value. Code after the method will be considered unreachable by diagnostics if the argument to
the associated parameter matches this value.
</param>
</member>
<member name="P:System.Diagnostics.CodeAnalysis.DoesNotReturnIfAttribute.ParameterValue">
<summary>Gets the condition parameter value.</summary>
</member>
<member name="T:System.Diagnostics.CodeAnalysis.MemberNotNullAttribute">
<summary>Specifies that the method or property will ensure that the listed field and property members have not-null values.</summary>
</member>
<member name="M:System.Diagnostics.CodeAnalysis.MemberNotNullAttribute.#ctor(System.String)">
<summary>Initializes the attribute with a field or property member.</summary>
<param name="member">
The field or property member that is promised to be not-null.
</param>
</member>
<member name="M:System.Diagnostics.CodeAnalysis.MemberNotNullAttribute.#ctor(System.String[])">
<summary>Initializes the attribute with the list of field and property members.</summary>
<param name="members">
The list of field and property members that are promised to be not-null.
</param>
</member>
<member name="P:System.Diagnostics.CodeAnalysis.MemberNotNullAttribute.Members">
<summary>Gets field or property member names.</summary>
</member>
<member name="T:System.Diagnostics.CodeAnalysis.MemberNotNullWhenAttribute">
<summary>Specifies that the method or property will ensure that the listed field and property members have not-null values when returning with the specified return value condition.</summary>
</member>
<member name="M:System.Diagnostics.CodeAnalysis.MemberNotNullWhenAttribute.#ctor(System.Boolean,System.String)">
<summary>Initializes the attribute with the specified return value condition and a field or property member.</summary>
<param name="returnValue">
The return value condition. If the method returns this value, the associated field or property member will not be null.
</param>
<param name="member">
The field or property member that is promised to be not-null.
</param>
</member>
<member name="M:System.Diagnostics.CodeAnalysis.MemberNotNullWhenAttribute.#ctor(System.Boolean,System.String[])">
<summary>Initializes the attribute with the specified return value condition and list of field and property members.</summary>
<param name="returnValue">
The return value condition. If the method returns this value, the associated field and property members will not be null.
</param>
<param name="members">
The list of field and property members that are promised to be not-null.
</param>
</member>
<member name="P:System.Diagnostics.CodeAnalysis.MemberNotNullWhenAttribute.ReturnValue">
<summary>Gets the return value condition.</summary>
</member>
<member name="P:System.Diagnostics.CodeAnalysis.MemberNotNullWhenAttribute.Members">
<summary>Gets field or property member names.</summary>
</member>
</members>
</doc>

View File

@@ -0,0 +1,535 @@
<?xml version="1.0"?>
<doc>
<assembly>
<name>Microsoft.Extensions.Configuration.Abstractions</name>
</assembly>
<members>
<member name="T:Microsoft.Extensions.Configuration.ConfigurationDebugViewContext">
<summary>
Provides data about the current item of the configuration.
</summary>
</member>
<member name="M:Microsoft.Extensions.Configuration.ConfigurationDebugViewContext.#ctor(System.String,System.String,System.String,Microsoft.Extensions.Configuration.IConfigurationProvider)">
<summary>
Initializes a new instance of <see cref="T:Microsoft.Extensions.Configuration.ConfigurationDebugViewContext"/>.
</summary>
<param name="path">The path of the current item of the configuration.</param>
<param name="key">The key of the current item of the configuration.</param>
<param name="value">The value of the current item of the configuration.</param>
<param name="configurationProvider">The <see cref="T:Microsoft.Extensions.Configuration.IConfigurationProvider" /> to use to get the value of the current item.</param>
</member>
<member name="P:Microsoft.Extensions.Configuration.ConfigurationDebugViewContext.Path">
<summary>
Gets the path of the current item.
</summary>
</member>
<member name="P:Microsoft.Extensions.Configuration.ConfigurationDebugViewContext.Key">
<summary>
Gets the key of the current item.
</summary>
</member>
<member name="P:Microsoft.Extensions.Configuration.ConfigurationDebugViewContext.Value">
<summary>
Gets the value of the current item.
</summary>
</member>
<member name="P:Microsoft.Extensions.Configuration.ConfigurationDebugViewContext.ConfigurationProvider">
<summary>
Gets the <see cref="T:Microsoft.Extensions.Configuration.IConfigurationProvider" /> that was used to get the value of the current item.
</summary>
</member>
<member name="T:Microsoft.Extensions.Configuration.ConfigurationExtensions">
<summary>
Provides extension methods for configuration classes.
</summary>
</member>
<member name="M:Microsoft.Extensions.Configuration.ConfigurationExtensions.Add``1(Microsoft.Extensions.Configuration.IConfigurationBuilder,System.Action{``0})">
<summary>
Adds a new configuration source.
</summary>
<param name="builder">The builder to add to.</param>
<param name="configureSource">Configures the source secrets.</param>
<returns>The <see cref="T:Microsoft.Extensions.Configuration.IConfigurationBuilder"/>.</returns>
</member>
<member name="M:Microsoft.Extensions.Configuration.ConfigurationExtensions.GetConnectionString(Microsoft.Extensions.Configuration.IConfiguration,System.String)">
<summary>
Gets the specified connection string from the specified configuration.
Shorthand for <c>GetSection("ConnectionStrings")[name]</c>.
</summary>
<param name="configuration">The configuration to enumerate.</param>
<param name="name">The connection string key.</param>
<returns>The connection string.</returns>
</member>
<member name="M:Microsoft.Extensions.Configuration.ConfigurationExtensions.AsEnumerable(Microsoft.Extensions.Configuration.IConfiguration)">
<summary>
Get the enumeration of key value pairs within the <see cref="T:Microsoft.Extensions.Configuration.IConfiguration" />
</summary>
<param name="configuration">The configuration to enumerate.</param>
<returns>An enumeration of key value pairs.</returns>
</member>
<member name="M:Microsoft.Extensions.Configuration.ConfigurationExtensions.AsEnumerable(Microsoft.Extensions.Configuration.IConfiguration,System.Boolean)">
<summary>
Get the enumeration of key value pairs within the <see cref="T:Microsoft.Extensions.Configuration.IConfiguration" />
</summary>
<param name="configuration">The configuration to enumerate.</param>
<param name="makePathsRelative"><see langword="true" /> to trim the current configuration's path from the front of the returned child keys.</param>
<returns>An enumeration of key value pairs.</returns>
</member>
<member name="M:Microsoft.Extensions.Configuration.ConfigurationExtensions.Exists(Microsoft.Extensions.Configuration.IConfigurationSection)">
<summary>
Determines whether the section has a <see cref="P:Microsoft.Extensions.Configuration.IConfigurationSection.Value"/> or has children.
</summary>
<param name="section">The section to enumerate.</param>
<returns><see langword="true" /> if the section has values or children; otherwise, <see langword="false" />.</returns>
</member>
<member name="M:Microsoft.Extensions.Configuration.ConfigurationExtensions.GetRequiredSection(Microsoft.Extensions.Configuration.IConfiguration,System.String)">
<summary>
Gets a configuration subsection with the specified key.
</summary>
<param name="configuration">The configuration to enumerate.</param>
<param name="key">The key of the configuration section.</param>
<returns>The <see cref="T:Microsoft.Extensions.Configuration.IConfigurationSection"/>.</returns>
<remarks>
If no matching sub-section is found with the specified key, an exception is raised.
</remarks>
<exception cref="T:System.InvalidOperationException">There is no section with key <paramref name="key"/>.</exception>
</member>
<member name="T:Microsoft.Extensions.Configuration.ConfigurationKeyNameAttribute">
<summary>
Specifies the key name for a configuration property.
</summary>
</member>
<member name="M:Microsoft.Extensions.Configuration.ConfigurationKeyNameAttribute.#ctor(System.String)">
<summary>
Initializes a new instance of <see cref="T:Microsoft.Extensions.Configuration.ConfigurationKeyNameAttribute"/>.
</summary>
<param name="name">The key name.</param>
</member>
<member name="P:Microsoft.Extensions.Configuration.ConfigurationKeyNameAttribute.Name">
<summary>
Gets the key name for a configuration property.
</summary>
</member>
<member name="T:Microsoft.Extensions.Configuration.ConfigurationPath">
<summary>
Provides utility methods and constants for manipulating Configuration paths.
</summary>
</member>
<member name="F:Microsoft.Extensions.Configuration.ConfigurationPath.KeyDelimiter">
<summary>
The delimiter ":" used to separate individual keys in a path.
</summary>
</member>
<member name="M:Microsoft.Extensions.Configuration.ConfigurationPath.Combine(System.String[])">
<summary>
Combines path segments into one path.
</summary>
<param name="pathSegments">The path segments to combine.</param>
<returns>The combined path.</returns>
</member>
<member name="M:Microsoft.Extensions.Configuration.ConfigurationPath.Combine(System.Collections.Generic.IEnumerable{System.String})">
<summary>
Combines path segments into one path.
</summary>
<param name="pathSegments">The path segments to combine.</param>
<returns>The combined path.</returns>
</member>
<member name="M:Microsoft.Extensions.Configuration.ConfigurationPath.GetSectionKey(System.String)">
<summary>
Extracts the last path segment from the path.
</summary>
<param name="path">The path.</param>
<returns>The last path segment of the path.</returns>
</member>
<member name="M:Microsoft.Extensions.Configuration.ConfigurationPath.GetParentPath(System.String)">
<summary>
Extracts the path corresponding to the parent node for a given path.
</summary>
<param name="path">The path.</param>
<returns>The original path minus the last individual segment found in it. Null if the original path corresponds to a top level node.</returns>
</member>
<member name="T:Microsoft.Extensions.Configuration.ConfigurationRootExtensions">
<summary>
Provides extension methods for <see cref="T:Microsoft.Extensions.Configuration.IConfigurationRoot"/>.
</summary>
</member>
<member name="M:Microsoft.Extensions.Configuration.ConfigurationRootExtensions.GetDebugView(Microsoft.Extensions.Configuration.IConfigurationRoot)">
<summary>
Generates a human-readable view of the configuration showing where each value came from.
</summary>
<returns>The debug view.</returns>
</member>
<member name="M:Microsoft.Extensions.Configuration.ConfigurationRootExtensions.GetDebugView(Microsoft.Extensions.Configuration.IConfigurationRoot,System.Func{Microsoft.Extensions.Configuration.ConfigurationDebugViewContext,System.String})">
<summary>
Generates a human-readable view of the configuration showing where each value came from.
</summary>
<param name="root">The configuration root.</param>
<param name="processValue">
The function for processing the value, for example, hiding secrets.
Parameters:
ConfigurationDebugViewContext: Context of the current configuration item.
returns: A string value is used to assign as the Value of the configuration section.
</param>
<returns>The debug view.</returns>
</member>
<member name="T:Microsoft.Extensions.Configuration.IConfiguration">
<summary>
Represents a set of key/value application configuration properties.
</summary>
</member>
<member name="P:Microsoft.Extensions.Configuration.IConfiguration.Item(System.String)">
<summary>
Gets or sets a configuration value.
</summary>
<param name="key">The configuration key.</param>
<returns>The configuration value.</returns>
</member>
<member name="M:Microsoft.Extensions.Configuration.IConfiguration.GetSection(System.String)">
<summary>
Gets a configuration sub-section with the specified key.
</summary>
<param name="key">The key of the configuration section.</param>
<returns>The <see cref="T:Microsoft.Extensions.Configuration.IConfigurationSection"/>.</returns>
<remarks>
This method will never return <c>null</c>. If no matching sub-section is found with the specified key,
an empty <see cref="T:Microsoft.Extensions.Configuration.IConfigurationSection"/> will be returned.
</remarks>
</member>
<member name="M:Microsoft.Extensions.Configuration.IConfiguration.GetChildren">
<summary>
Gets the immediate descendant configuration sub-sections.
</summary>
<returns>The configuration sub-sections.</returns>
</member>
<member name="M:Microsoft.Extensions.Configuration.IConfiguration.GetReloadToken">
<summary>
Returns a <see cref="T:Microsoft.Extensions.Primitives.IChangeToken"/> that can be used to observe when this configuration is reloaded.
</summary>
<returns>A <see cref="T:Microsoft.Extensions.Primitives.IChangeToken"/>.</returns>
</member>
<member name="T:Microsoft.Extensions.Configuration.IConfigurationBuilder">
<summary>
Represents a type used to build application configuration.
</summary>
</member>
<member name="P:Microsoft.Extensions.Configuration.IConfigurationBuilder.Properties">
<summary>
Gets a key/value collection that can be used to share data between the <see cref="T:Microsoft.Extensions.Configuration.IConfigurationBuilder"/>
and the registered <see cref="T:Microsoft.Extensions.Configuration.IConfigurationSource"/>s.
</summary>
</member>
<member name="P:Microsoft.Extensions.Configuration.IConfigurationBuilder.Sources">
<summary>
Gets the sources used to obtain configuration values
</summary>
</member>
<member name="M:Microsoft.Extensions.Configuration.IConfigurationBuilder.Add(Microsoft.Extensions.Configuration.IConfigurationSource)">
<summary>
Adds a new configuration source.
</summary>
<param name="source">The configuration source to add.</param>
<returns>The same <see cref="T:Microsoft.Extensions.Configuration.IConfigurationBuilder"/>.</returns>
</member>
<member name="M:Microsoft.Extensions.Configuration.IConfigurationBuilder.Build">
<summary>
Builds an <see cref="T:Microsoft.Extensions.Configuration.IConfiguration"/> with keys and values from the set of sources registered in
<see cref="P:Microsoft.Extensions.Configuration.IConfigurationBuilder.Sources"/>.
</summary>
<returns>An <see cref="T:Microsoft.Extensions.Configuration.IConfigurationRoot"/> with keys and values from the registered sources.</returns>
</member>
<member name="T:Microsoft.Extensions.Configuration.IConfigurationManager">
<summary>
Represents a mutable configuration object.
</summary>
<remarks>
It is both an <see cref="T:Microsoft.Extensions.Configuration.IConfigurationBuilder"/> and an <see cref="T:Microsoft.Extensions.Configuration.IConfiguration"/>.
As sources are added, it updates its current view of configuration.
</remarks>
</member>
<member name="T:Microsoft.Extensions.Configuration.IConfigurationProvider">
<summary>
Provides configuration key/values for an application.
</summary>
</member>
<member name="M:Microsoft.Extensions.Configuration.IConfigurationProvider.TryGet(System.String,System.String@)">
<summary>
Tries to get a configuration value for the specified key.
</summary>
<param name="key">The key.</param>
<param name="value">When this method returns, contains the value for the specified key.</param>
<returns><see langword="true" /> if a value for the specified key was found, otherwise <see langword="false" />.</returns>
</member>
<member name="M:Microsoft.Extensions.Configuration.IConfigurationProvider.Set(System.String,System.String)">
<summary>
Sets a configuration value for the specified key.
</summary>
<param name="key">The key.</param>
<param name="value">The value.</param>
</member>
<member name="M:Microsoft.Extensions.Configuration.IConfigurationProvider.GetReloadToken">
<summary>
Attempts to get an <see cref="T:Microsoft.Extensions.Primitives.IChangeToken"/> for change tracking.
</summary>
<returns>An <see cref="T:Microsoft.Extensions.Primitives.IChangeToken"/> token if this provider supports change tracking, <see langword="null"/> otherwise.</returns>
</member>
<member name="M:Microsoft.Extensions.Configuration.IConfigurationProvider.Load">
<summary>
Loads configuration values from the source represented by this <see cref="T:Microsoft.Extensions.Configuration.IConfigurationProvider"/>.
</summary>
</member>
<member name="M:Microsoft.Extensions.Configuration.IConfigurationProvider.GetChildKeys(System.Collections.Generic.IEnumerable{System.String},System.String)">
<summary>
Returns the immediate descendant configuration keys for a given parent path based on the data of this
<see cref="T:Microsoft.Extensions.Configuration.IConfigurationProvider"/> and the set of keys returned by all the preceding
<see cref="T:Microsoft.Extensions.Configuration.IConfigurationProvider"/> providers.
</summary>
<param name="earlierKeys">The child keys returned by the preceding providers for the same parent path.</param>
<param name="parentPath">The parent path.</param>
<returns>The child keys.</returns>
</member>
<member name="T:Microsoft.Extensions.Configuration.IConfigurationRoot">
<summary>
Represents the root of an <see cref="T:Microsoft.Extensions.Configuration.IConfiguration"/> hierarchy.
</summary>
</member>
<member name="M:Microsoft.Extensions.Configuration.IConfigurationRoot.Reload">
<summary>
Forces the configuration values to be reloaded from the underlying <see cref="T:Microsoft.Extensions.Configuration.IConfigurationProvider"/> providers.
</summary>
</member>
<member name="P:Microsoft.Extensions.Configuration.IConfigurationRoot.Providers">
<summary>
Gets the <see cref="T:Microsoft.Extensions.Configuration.IConfigurationProvider"/> providers for this configuration.
</summary>
</member>
<member name="T:Microsoft.Extensions.Configuration.IConfigurationSection">
<summary>
Represents a section of application configuration values.
</summary>
</member>
<member name="P:Microsoft.Extensions.Configuration.IConfigurationSection.Key">
<summary>
Gets the key this section occupies in its parent.
</summary>
</member>
<member name="P:Microsoft.Extensions.Configuration.IConfigurationSection.Path">
<summary>
Gets the full path to this section within the <see cref="T:Microsoft.Extensions.Configuration.IConfiguration"/>.
</summary>
</member>
<member name="P:Microsoft.Extensions.Configuration.IConfigurationSection.Value">
<summary>
Gets or sets the section value.
</summary>
</member>
<member name="T:Microsoft.Extensions.Configuration.IConfigurationSource">
<summary>
Represents a source of configuration key/values for an application.
</summary>
</member>
<member name="M:Microsoft.Extensions.Configuration.IConfigurationSource.Build(Microsoft.Extensions.Configuration.IConfigurationBuilder)">
<summary>
Builds the <see cref="T:Microsoft.Extensions.Configuration.IConfigurationProvider"/> for this source.
</summary>
<param name="builder">The <see cref="T:Microsoft.Extensions.Configuration.IConfigurationBuilder"/>.</param>
<returns>An <see cref="T:Microsoft.Extensions.Configuration.IConfigurationProvider"/></returns>
</member>
<member name="M:System.ThrowHelper.ThrowIfNull(System.Object,System.String)">
<summary>Throws an <see cref="T:System.ArgumentNullException"/> if <paramref name="argument"/> is null.</summary>
<param name="argument">The reference type argument to validate as non-null.</param>
<param name="paramName">The name of the parameter with which <paramref name="argument"/> corresponds.</param>
</member>
<member name="M:System.ThrowHelper.IfNullOrWhitespace(System.String,System.String)">
<summary>
Throws either an <see cref="T:System.ArgumentNullException"/> or an <see cref="T:System.ArgumentException"/>
if the specified string is <see langword="null"/> or whitespace respectively.
</summary>
<param name="argument">String to be checked for <see langword="null"/> or whitespace.</param>
<param name="paramName">The name of the parameter being checked.</param>
<returns>The original value of <paramref name="argument"/>.</returns>
</member>
<member name="T:System.Runtime.InteropServices.LibraryImportAttribute">
<summary>
Attribute used to indicate a source generator should create a function for marshalling
arguments instead of relying on the runtime to generate an equivalent marshalling function at run-time.
</summary>
<remarks>
This attribute is meaningless if the source generator associated with it is not enabled.
The current built-in source generator only supports C# and only supplies an implementation when
applied to static, partial, non-generic methods.
</remarks>
</member>
<member name="M:System.Runtime.InteropServices.LibraryImportAttribute.#ctor(System.String)">
<summary>
Initializes a new instance of the <see cref="T:System.Runtime.InteropServices.LibraryImportAttribute"/>.
</summary>
<param name="libraryName">Name of the library containing the import.</param>
</member>
<member name="P:System.Runtime.InteropServices.LibraryImportAttribute.LibraryName">
<summary>
Gets the name of the library containing the import.
</summary>
</member>
<member name="P:System.Runtime.InteropServices.LibraryImportAttribute.EntryPoint">
<summary>
Gets or sets the name of the entry point to be called.
</summary>
</member>
<member name="P:System.Runtime.InteropServices.LibraryImportAttribute.StringMarshalling">
<summary>
Gets or sets how to marshal string arguments to the method.
</summary>
<remarks>
If this field is set to a value other than <see cref="F:System.Runtime.InteropServices.StringMarshalling.Custom" />,
<see cref="P:System.Runtime.InteropServices.LibraryImportAttribute.StringMarshallingCustomType" /> must not be specified.
</remarks>
</member>
<member name="P:System.Runtime.InteropServices.LibraryImportAttribute.StringMarshallingCustomType">
<summary>
Gets or sets the <see cref="T:System.Type"/> used to control how string arguments to the method are marshalled.
</summary>
<remarks>
If this field is specified, <see cref="P:System.Runtime.InteropServices.LibraryImportAttribute.StringMarshalling" /> must not be specified
or must be set to <see cref="F:System.Runtime.InteropServices.StringMarshalling.Custom" />.
</remarks>
</member>
<member name="P:System.Runtime.InteropServices.LibraryImportAttribute.SetLastError">
<summary>
Gets or sets whether the callee sets an error (SetLastError on Windows or errno
on other platforms) before returning from the attributed method.
</summary>
</member>
<member name="T:System.Runtime.InteropServices.StringMarshalling">
<summary>
Specifies how strings should be marshalled for generated p/invokes
</summary>
</member>
<member name="F:System.Runtime.InteropServices.StringMarshalling.Custom">
<summary>
Indicates the user is supplying a specific marshaller in <see cref="P:System.Runtime.InteropServices.LibraryImportAttribute.StringMarshallingCustomType"/>.
</summary>
</member>
<member name="F:System.Runtime.InteropServices.StringMarshalling.Utf8">
<summary>
Use the platform-provided UTF-8 marshaller.
</summary>
</member>
<member name="F:System.Runtime.InteropServices.StringMarshalling.Utf16">
<summary>
Use the platform-provided UTF-16 marshaller.
</summary>
</member>
<member name="P:System.SR.InvalidSectionName">
<summary>Section '{0}' not found in configuration.</summary>
</member>
<member name="T:System.Diagnostics.CodeAnalysis.AllowNullAttribute">
<summary>Specifies that null is allowed as an input even if the corresponding type disallows it.</summary>
</member>
<member name="T:System.Diagnostics.CodeAnalysis.DisallowNullAttribute">
<summary>Specifies that null is disallowed as an input even if the corresponding type allows it.</summary>
</member>
<member name="T:System.Diagnostics.CodeAnalysis.MaybeNullAttribute">
<summary>Specifies that an output may be null even if the corresponding type disallows it.</summary>
</member>
<member name="T:System.Diagnostics.CodeAnalysis.NotNullAttribute">
<summary>Specifies that an output will not be null even if the corresponding type allows it. Specifies that an input argument was not null when the call returns.</summary>
</member>
<member name="T:System.Diagnostics.CodeAnalysis.MaybeNullWhenAttribute">
<summary>Specifies that when a method returns <see cref="P:System.Diagnostics.CodeAnalysis.MaybeNullWhenAttribute.ReturnValue"/>, the parameter may be null even if the corresponding type disallows it.</summary>
</member>
<member name="M:System.Diagnostics.CodeAnalysis.MaybeNullWhenAttribute.#ctor(System.Boolean)">
<summary>Initializes the attribute with the specified return value condition.</summary>
<param name="returnValue">
The return value condition. If the method returns this value, the associated parameter may be null.
</param>
</member>
<member name="P:System.Diagnostics.CodeAnalysis.MaybeNullWhenAttribute.ReturnValue">
<summary>Gets the return value condition.</summary>
</member>
<member name="T:System.Diagnostics.CodeAnalysis.NotNullWhenAttribute">
<summary>Specifies that when a method returns <see cref="P:System.Diagnostics.CodeAnalysis.NotNullWhenAttribute.ReturnValue"/>, the parameter will not be null even if the corresponding type allows it.</summary>
</member>
<member name="M:System.Diagnostics.CodeAnalysis.NotNullWhenAttribute.#ctor(System.Boolean)">
<summary>Initializes the attribute with the specified return value condition.</summary>
<param name="returnValue">
The return value condition. If the method returns this value, the associated parameter will not be null.
</param>
</member>
<member name="P:System.Diagnostics.CodeAnalysis.NotNullWhenAttribute.ReturnValue">
<summary>Gets the return value condition.</summary>
</member>
<member name="T:System.Diagnostics.CodeAnalysis.NotNullIfNotNullAttribute">
<summary>Specifies that the output will be non-null if the named parameter is non-null.</summary>
</member>
<member name="M:System.Diagnostics.CodeAnalysis.NotNullIfNotNullAttribute.#ctor(System.String)">
<summary>Initializes the attribute with the associated parameter name.</summary>
<param name="parameterName">
The associated parameter name. The output will be non-null if the argument to the parameter specified is non-null.
</param>
</member>
<member name="P:System.Diagnostics.CodeAnalysis.NotNullIfNotNullAttribute.ParameterName">
<summary>Gets the associated parameter name.</summary>
</member>
<member name="T:System.Diagnostics.CodeAnalysis.DoesNotReturnAttribute">
<summary>Applied to a method that will never return under any circumstance.</summary>
</member>
<member name="T:System.Diagnostics.CodeAnalysis.DoesNotReturnIfAttribute">
<summary>Specifies that the method will not return if the associated Boolean parameter is passed the specified value.</summary>
</member>
<member name="M:System.Diagnostics.CodeAnalysis.DoesNotReturnIfAttribute.#ctor(System.Boolean)">
<summary>Initializes the attribute with the specified parameter value.</summary>
<param name="parameterValue">
The condition parameter value. Code after the method will be considered unreachable by diagnostics if the argument to
the associated parameter matches this value.
</param>
</member>
<member name="P:System.Diagnostics.CodeAnalysis.DoesNotReturnIfAttribute.ParameterValue">
<summary>Gets the condition parameter value.</summary>
</member>
<member name="T:System.Diagnostics.CodeAnalysis.MemberNotNullAttribute">
<summary>Specifies that the method or property will ensure that the listed field and property members have not-null values.</summary>
</member>
<member name="M:System.Diagnostics.CodeAnalysis.MemberNotNullAttribute.#ctor(System.String)">
<summary>Initializes the attribute with a field or property member.</summary>
<param name="member">
The field or property member that is promised to be not-null.
</param>
</member>
<member name="M:System.Diagnostics.CodeAnalysis.MemberNotNullAttribute.#ctor(System.String[])">
<summary>Initializes the attribute with the list of field and property members.</summary>
<param name="members">
The list of field and property members that are promised to be not-null.
</param>
</member>
<member name="P:System.Diagnostics.CodeAnalysis.MemberNotNullAttribute.Members">
<summary>Gets field or property member names.</summary>
</member>
<member name="T:System.Diagnostics.CodeAnalysis.MemberNotNullWhenAttribute">
<summary>Specifies that the method or property will ensure that the listed field and property members have not-null values when returning with the specified return value condition.</summary>
</member>
<member name="M:System.Diagnostics.CodeAnalysis.MemberNotNullWhenAttribute.#ctor(System.Boolean,System.String)">
<summary>Initializes the attribute with the specified return value condition and a field or property member.</summary>
<param name="returnValue">
The return value condition. If the method returns this value, the associated field or property member will not be null.
</param>
<param name="member">
The field or property member that is promised to be not-null.
</param>
</member>
<member name="M:System.Diagnostics.CodeAnalysis.MemberNotNullWhenAttribute.#ctor(System.Boolean,System.String[])">
<summary>Initializes the attribute with the specified return value condition and list of field and property members.</summary>
<param name="returnValue">
The return value condition. If the method returns this value, the associated field and property members will not be null.
</param>
<param name="members">
The list of field and property members that are promised to be not-null.
</param>
</member>
<member name="P:System.Diagnostics.CodeAnalysis.MemberNotNullWhenAttribute.ReturnValue">
<summary>Gets the return value condition.</summary>
</member>
<member name="P:System.Diagnostics.CodeAnalysis.MemberNotNullWhenAttribute.Members">
<summary>Gets field or property member names.</summary>
</member>
</members>
</doc>

View File

@@ -0,0 +1,654 @@
<?xml version="1.0"?>
<doc>
<assembly>
<name>Microsoft.Extensions.Configuration.Binder</name>
</assembly>
<members>
<member name="T:Microsoft.Extensions.Configuration.BinderOptions">
<summary>
Specifies options used by the <see cref="T:Microsoft.Extensions.Configuration.ConfigurationBinder"/>.
</summary>
</member>
<member name="P:Microsoft.Extensions.Configuration.BinderOptions.BindNonPublicProperties">
<summary>
Gets or sets a value that indicates whether the binder attempts to set all properties or only public properties.
</summary>
<value>
<see langword="true" /> if the binder attempts to set all non-read-only properties; <see langword="false" /> if only public properties are set.
</value>
</member>
<member name="P:Microsoft.Extensions.Configuration.BinderOptions.ErrorOnUnknownConfiguration">
<summary>
Gets or sets a value that indicates whether exceptions are thrown when converting a value or when a configuration
key is found for which the provided model object doesn't have an appropriate property that matches the key's name.
</summary>
<value>
<see langword="true" /> if an <see cref="T:System.InvalidOperationException"/> is thrown with a description; <see langword="false" /> if no exceptions are thrown. The default is <see langword="false" />.
</value>
</member>
<member name="T:Microsoft.Extensions.Configuration.ConfigurationBinder">
<summary>
Static helper class that allows binding strongly typed objects to configuration values.
</summary>
</member>
<member name="M:Microsoft.Extensions.Configuration.ConfigurationBinder.Get``1(Microsoft.Extensions.Configuration.IConfiguration)">
<summary>
Attempts to bind the configuration instance to a new instance of type T.
If this configuration section has a value, that will be used.
Otherwise binding by matching property names against configuration keys recursively.
</summary>
<typeparam name="T">The type of the new instance to bind.</typeparam>
<param name="configuration">The configuration instance to bind.</param>
<returns>The new instance of T if successful, default(T) otherwise.</returns>
</member>
<member name="M:Microsoft.Extensions.Configuration.ConfigurationBinder.Get``1(Microsoft.Extensions.Configuration.IConfiguration,System.Action{Microsoft.Extensions.Configuration.BinderOptions})">
<summary>
Attempts to bind the configuration instance to a new instance of type T.
If this configuration section has a value, that will be used.
Otherwise binding by matching property names against configuration keys recursively.
</summary>
<typeparam name="T">The type of the new instance to bind.</typeparam>
<param name="configuration">The configuration instance to bind.</param>
<param name="configureOptions">Configures the binder options.</param>
<returns>The new instance of T if successful, default(T) otherwise.</returns>
</member>
<member name="M:Microsoft.Extensions.Configuration.ConfigurationBinder.Get(Microsoft.Extensions.Configuration.IConfiguration,System.Type)">
<summary>
Attempts to bind the configuration instance to a new instance of type T.
If this configuration section has a value, that will be used.
Otherwise binding by matching property names against configuration keys recursively.
</summary>
<param name="configuration">The configuration instance to bind.</param>
<param name="type">The type of the new instance to bind.</param>
<returns>The new instance if successful, null otherwise.</returns>
</member>
<member name="M:Microsoft.Extensions.Configuration.ConfigurationBinder.Get(Microsoft.Extensions.Configuration.IConfiguration,System.Type,System.Action{Microsoft.Extensions.Configuration.BinderOptions})">
<summary>
Attempts to bind the configuration instance to a new instance of type T.
If this configuration section has a value, that will be used.
Otherwise binding by matching property names against configuration keys recursively.
</summary>
<param name="configuration">The configuration instance to bind.</param>
<param name="type">The type of the new instance to bind.</param>
<param name="configureOptions">Configures the binder options.</param>
<returns>The new instance if successful, null otherwise.</returns>
</member>
<member name="M:Microsoft.Extensions.Configuration.ConfigurationBinder.Bind(Microsoft.Extensions.Configuration.IConfiguration,System.String,System.Object)">
<summary>
Attempts to bind the given object instance to the configuration section specified by the key by matching property names against configuration keys recursively.
</summary>
<param name="configuration">The configuration instance to bind.</param>
<param name="key">The key of the configuration section to bind.</param>
<param name="instance">The object to bind.</param>
</member>
<member name="M:Microsoft.Extensions.Configuration.ConfigurationBinder.Bind(Microsoft.Extensions.Configuration.IConfiguration,System.Object)">
<summary>
Attempts to bind the given object instance to configuration values by matching property names against configuration keys recursively.
</summary>
<param name="configuration">The configuration instance to bind.</param>
<param name="instance">The object to bind.</param>
</member>
<member name="M:Microsoft.Extensions.Configuration.ConfigurationBinder.Bind(Microsoft.Extensions.Configuration.IConfiguration,System.Object,System.Action{Microsoft.Extensions.Configuration.BinderOptions})">
<summary>
Attempts to bind the given object instance to configuration values by matching property names against configuration keys recursively.
</summary>
<param name="configuration">The configuration instance to bind.</param>
<param name="instance">The object to bind.</param>
<param name="configureOptions">Configures the binder options.</param>
</member>
<member name="M:Microsoft.Extensions.Configuration.ConfigurationBinder.GetValue``1(Microsoft.Extensions.Configuration.IConfiguration,System.String)">
<summary>
Extracts the value with the specified key and converts it to type T.
</summary>
<typeparam name="T">The type to convert the value to.</typeparam>
<param name="configuration">The configuration.</param>
<param name="key">The key of the configuration section's value to convert.</param>
<returns>The converted value.</returns>
</member>
<member name="M:Microsoft.Extensions.Configuration.ConfigurationBinder.GetValue``1(Microsoft.Extensions.Configuration.IConfiguration,System.String,``0)">
<summary>
Extracts the value with the specified key and converts it to type T.
</summary>
<typeparam name="T">The type to convert the value to.</typeparam>
<param name="configuration">The configuration.</param>
<param name="key">The key of the configuration section's value to convert.</param>
<param name="defaultValue">The default value to use if no value is found.</param>
<returns>The converted value.</returns>
</member>
<member name="M:Microsoft.Extensions.Configuration.ConfigurationBinder.GetValue(Microsoft.Extensions.Configuration.IConfiguration,System.Type,System.String)">
<summary>
Extracts the value with the specified key and converts it to the specified type.
</summary>
<param name="configuration">The configuration.</param>
<param name="type">The type to convert the value to.</param>
<param name="key">The key of the configuration section's value to convert.</param>
<returns>The converted value.</returns>
</member>
<member name="M:Microsoft.Extensions.Configuration.ConfigurationBinder.GetValue(Microsoft.Extensions.Configuration.IConfiguration,System.Type,System.String,System.Object)">
<summary>
Extracts the value with the specified key and converts it to the specified type.
</summary>
<param name="configuration">The configuration.</param>
<param name="type">The type to convert the value to.</param>
<param name="key">The key of the configuration section's value to convert.</param>
<param name="defaultValue">The default value to use if no value is found.</param>
<returns>The converted value.</returns>
</member>
<member name="M:Microsoft.Extensions.Configuration.ConfigurationBinder.ResetPropertyValue(System.Reflection.PropertyInfo,System.Object,Microsoft.Extensions.Configuration.BinderOptions)">
<summary>
Reset the property value to the value from the property getter. This is useful for properties that have a getter or setters that perform some logic changing the object state.
</summary>
<param name="property">The property to reset.</param>
<param name="instance">The instance to reset the property on.</param>
<param name="options">The binder options.</param>
<remarks>
This method doesn't do any configuration binding. It just resets the property value to the value from the property getter.
This method called only when creating an instance using a primary constructor with parameters names match properties names.
</remarks>
</member>
<member name="M:Microsoft.Extensions.Configuration.ConfigurationBinder.CreateInstance(System.Type,Microsoft.Extensions.Configuration.IConfiguration,Microsoft.Extensions.Configuration.BinderOptions,System.Reflection.ParameterInfo[]@)">
<summary>
Create an instance of the specified type.
</summary>
<param name="type">The type to create an instance of.</param>
<param name="config">The configuration to bind to the instance.</param>
<param name="options">The binder options.</param>
<param name="constructorParameters">The parameters of the constructor used to create the instance.</param>
<returns>The created instance.</returns>
<exception cref="T:System.InvalidOperationException">If the type cannot be created.</exception>
<remarks>
constructorParameters will not be null only when using a constructor with a parameters which get their values from the configuration
This happen when using types having properties match the constructor parameter names. `record` types are an example.
In such cases we need to carry the parameters list to avoid binding the properties again during BindProperties.
</remarks>
</member>
<member name="M:System.ThrowHelper.ThrowIfNull(System.Object,System.String)">
<summary>Throws an <see cref="T:System.ArgumentNullException"/> if <paramref name="argument"/> is null.</summary>
<param name="argument">The reference type argument to validate as non-null.</param>
<param name="paramName">The name of the parameter with which <paramref name="argument"/> corresponds.</param>
</member>
<member name="M:System.ThrowHelper.IfNullOrWhitespace(System.String,System.String)">
<summary>
Throws either an <see cref="T:System.ArgumentNullException"/> or an <see cref="T:System.ArgumentException"/>
if the specified string is <see langword="null"/> or whitespace respectively.
</summary>
<param name="argument">String to be checked for <see langword="null"/> or whitespace.</param>
<param name="paramName">The name of the parameter being checked.</param>
<returns>The original value of <paramref name="argument"/>.</returns>
</member>
<member name="T:System.Runtime.InteropServices.LibraryImportAttribute">
<summary>
Attribute used to indicate a source generator should create a function for marshalling
arguments instead of relying on the runtime to generate an equivalent marshalling function at run-time.
</summary>
<remarks>
This attribute is meaningless if the source generator associated with it is not enabled.
The current built-in source generator only supports C# and only supplies an implementation when
applied to static, partial, non-generic methods.
</remarks>
</member>
<member name="M:System.Runtime.InteropServices.LibraryImportAttribute.#ctor(System.String)">
<summary>
Initializes a new instance of the <see cref="T:System.Runtime.InteropServices.LibraryImportAttribute"/>.
</summary>
<param name="libraryName">Name of the library containing the import.</param>
</member>
<member name="P:System.Runtime.InteropServices.LibraryImportAttribute.LibraryName">
<summary>
Gets the name of the library containing the import.
</summary>
</member>
<member name="P:System.Runtime.InteropServices.LibraryImportAttribute.EntryPoint">
<summary>
Gets or sets the name of the entry point to be called.
</summary>
</member>
<member name="P:System.Runtime.InteropServices.LibraryImportAttribute.StringMarshalling">
<summary>
Gets or sets how to marshal string arguments to the method.
</summary>
<remarks>
If this field is set to a value other than <see cref="F:System.Runtime.InteropServices.StringMarshalling.Custom" />,
<see cref="P:System.Runtime.InteropServices.LibraryImportAttribute.StringMarshallingCustomType" /> must not be specified.
</remarks>
</member>
<member name="P:System.Runtime.InteropServices.LibraryImportAttribute.StringMarshallingCustomType">
<summary>
Gets or sets the <see cref="T:System.Type"/> used to control how string arguments to the method are marshalled.
</summary>
<remarks>
If this field is specified, <see cref="P:System.Runtime.InteropServices.LibraryImportAttribute.StringMarshalling" /> must not be specified
or must be set to <see cref="F:System.Runtime.InteropServices.StringMarshalling.Custom" />.
</remarks>
</member>
<member name="P:System.Runtime.InteropServices.LibraryImportAttribute.SetLastError">
<summary>
Gets or sets whether the callee sets an error (SetLastError on Windows or errno
on other platforms) before returning from the attributed method.
</summary>
</member>
<member name="T:System.Runtime.InteropServices.StringMarshalling">
<summary>
Specifies how strings should be marshalled for generated p/invokes
</summary>
</member>
<member name="F:System.Runtime.InteropServices.StringMarshalling.Custom">
<summary>
Indicates the user is supplying a specific marshaller in <see cref="P:System.Runtime.InteropServices.LibraryImportAttribute.StringMarshallingCustomType"/>.
</summary>
</member>
<member name="F:System.Runtime.InteropServices.StringMarshalling.Utf8">
<summary>
Use the platform-provided UTF-8 marshaller.
</summary>
</member>
<member name="F:System.Runtime.InteropServices.StringMarshalling.Utf16">
<summary>
Use the platform-provided UTF-16 marshaller.
</summary>
</member>
<member name="T:System.Diagnostics.CodeAnalysis.DynamicallyAccessedMembersAttribute">
<summary>
Indicates that certain members on a specified <see cref="T:System.Type"/> are accessed dynamically,
for example through <see cref="N:System.Reflection"/>.
</summary>
<remarks>
This allows tools to understand which members are being accessed during the execution
of a program.
This attribute is valid on members whose type is <see cref="T:System.Type"/> or <see cref="T:System.String"/>.
When this attribute is applied to a location of type <see cref="T:System.String"/>, the assumption is
that the string represents a fully qualified type name.
When this attribute is applied to a class, interface, or struct, the members specified
can be accessed dynamically on <see cref="T:System.Type"/> instances returned from calling
<see cref="M:System.Object.GetType"/> on instances of that class, interface, or struct.
If the attribute is applied to a method it's treated as a special case and it implies
the attribute should be applied to the "this" parameter of the method. As such the attribute
should only be used on instance methods of types assignable to System.Type (or string, but no methods
will use it there).
</remarks>
</member>
<member name="M:System.Diagnostics.CodeAnalysis.DynamicallyAccessedMembersAttribute.#ctor(System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes)">
<summary>
Initializes a new instance of the <see cref="T:System.Diagnostics.CodeAnalysis.DynamicallyAccessedMembersAttribute"/> class
with the specified member types.
</summary>
<param name="memberTypes">The types of members dynamically accessed.</param>
</member>
<member name="P:System.Diagnostics.CodeAnalysis.DynamicallyAccessedMembersAttribute.MemberTypes">
<summary>
Gets the <see cref="T:System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes"/> which specifies the type
of members dynamically accessed.
</summary>
</member>
<member name="T:System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes">
<summary>
Specifies the types of members that are dynamically accessed.
This enumeration has a <see cref="T:System.FlagsAttribute"/> attribute that allows a
bitwise combination of its member values.
</summary>
</member>
<member name="F:System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes.None">
<summary>
Specifies no members.
</summary>
</member>
<member name="F:System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes.PublicParameterlessConstructor">
<summary>
Specifies the default, parameterless public constructor.
</summary>
</member>
<member name="F:System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes.PublicConstructors">
<summary>
Specifies all public constructors.
</summary>
</member>
<member name="F:System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes.NonPublicConstructors">
<summary>
Specifies all non-public constructors.
</summary>
</member>
<member name="F:System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes.PublicMethods">
<summary>
Specifies all public methods.
</summary>
</member>
<member name="F:System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes.NonPublicMethods">
<summary>
Specifies all non-public methods.
</summary>
</member>
<member name="F:System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes.PublicFields">
<summary>
Specifies all public fields.
</summary>
</member>
<member name="F:System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes.NonPublicFields">
<summary>
Specifies all non-public fields.
</summary>
</member>
<member name="F:System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes.PublicNestedTypes">
<summary>
Specifies all public nested types.
</summary>
</member>
<member name="F:System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes.NonPublicNestedTypes">
<summary>
Specifies all non-public nested types.
</summary>
</member>
<member name="F:System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes.PublicProperties">
<summary>
Specifies all public properties.
</summary>
</member>
<member name="F:System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes.NonPublicProperties">
<summary>
Specifies all non-public properties.
</summary>
</member>
<member name="F:System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes.PublicEvents">
<summary>
Specifies all public events.
</summary>
</member>
<member name="F:System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes.NonPublicEvents">
<summary>
Specifies all non-public events.
</summary>
</member>
<member name="F:System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes.Interfaces">
<summary>
Specifies all interfaces implemented by the type.
</summary>
</member>
<member name="F:System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes.All">
<summary>
Specifies all members.
</summary>
</member>
<member name="T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute">
<summary>
Indicates that the specified method requires the ability to generate new code at runtime,
for example through <see cref="N:System.Reflection"/>.
</summary>
<remarks>
This allows tools to understand which methods are unsafe to call when compiling ahead of time.
</remarks>
</member>
<member name="M:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute.#ctor(System.String)">
<summary>
Initializes a new instance of the <see cref="T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute"/> class
with the specified message.
</summary>
<param name="message">
A message that contains information about the usage of dynamic code.
</param>
</member>
<member name="P:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute.Message">
<summary>
Gets a message that contains information about the usage of dynamic code.
</summary>
</member>
<member name="P:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute.Url">
<summary>
Gets or sets an optional URL that contains more information about the method,
why it requires dynamic code, and what options a consumer has to deal with it.
</summary>
</member>
<member name="T:System.Diagnostics.CodeAnalysis.RequiresUnreferencedCodeAttribute">
<summary>
Indicates that the specified method requires dynamic access to code that is not referenced
statically, for example through <see cref="N:System.Reflection"/>.
</summary>
<remarks>
This allows tools to understand which methods are unsafe to call when removing unreferenced
code from an application.
</remarks>
</member>
<member name="M:System.Diagnostics.CodeAnalysis.RequiresUnreferencedCodeAttribute.#ctor(System.String)">
<summary>
Initializes a new instance of the <see cref="T:System.Diagnostics.CodeAnalysis.RequiresUnreferencedCodeAttribute"/> class
with the specified message.
</summary>
<param name="message">
A message that contains information about the usage of unreferenced code.
</param>
</member>
<member name="P:System.Diagnostics.CodeAnalysis.RequiresUnreferencedCodeAttribute.Message">
<summary>
Gets a message that contains information about the usage of unreferenced code.
</summary>
</member>
<member name="P:System.Diagnostics.CodeAnalysis.RequiresUnreferencedCodeAttribute.Url">
<summary>
Gets or sets an optional URL that contains more information about the method,
why it requires unreferenced code, and what options a consumer has to deal with it.
</summary>
</member>
<member name="T:System.Diagnostics.CodeAnalysis.UnconditionalSuppressMessageAttribute">
<summary>
Suppresses reporting of a specific rule violation, allowing multiple suppressions on a
single code artifact.
</summary>
<remarks>
<see cref="T:System.Diagnostics.CodeAnalysis.UnconditionalSuppressMessageAttribute"/> is different than
<see cref="T:System.Diagnostics.CodeAnalysis.SuppressMessageAttribute"/> in that it doesn't have a
<see cref="T:System.Diagnostics.ConditionalAttribute"/>. So it is always preserved in the compiled assembly.
</remarks>
</member>
<member name="M:System.Diagnostics.CodeAnalysis.UnconditionalSuppressMessageAttribute.#ctor(System.String,System.String)">
<summary>
Initializes a new instance of the <see cref="T:System.Diagnostics.CodeAnalysis.UnconditionalSuppressMessageAttribute"/>
class, specifying the category of the tool and the identifier for an analysis rule.
</summary>
<param name="category">The category for the attribute.</param>
<param name="checkId">The identifier of the analysis rule the attribute applies to.</param>
</member>
<member name="P:System.Diagnostics.CodeAnalysis.UnconditionalSuppressMessageAttribute.Category">
<summary>
Gets the category identifying the classification of the attribute.
</summary>
<remarks>
The <see cref="P:System.Diagnostics.CodeAnalysis.UnconditionalSuppressMessageAttribute.Category"/> property describes the tool or tool analysis category
for which a message suppression attribute applies.
</remarks>
</member>
<member name="P:System.Diagnostics.CodeAnalysis.UnconditionalSuppressMessageAttribute.CheckId">
<summary>
Gets the identifier of the analysis tool rule to be suppressed.
</summary>
<remarks>
Concatenated together, the <see cref="P:System.Diagnostics.CodeAnalysis.UnconditionalSuppressMessageAttribute.Category"/> and <see cref="P:System.Diagnostics.CodeAnalysis.UnconditionalSuppressMessageAttribute.CheckId"/>
properties form a unique check identifier.
</remarks>
</member>
<member name="P:System.Diagnostics.CodeAnalysis.UnconditionalSuppressMessageAttribute.Scope">
<summary>
Gets or sets the scope of the code that is relevant for the attribute.
</summary>
<remarks>
The Scope property is an optional argument that specifies the metadata scope for which
the attribute is relevant.
</remarks>
</member>
<member name="P:System.Diagnostics.CodeAnalysis.UnconditionalSuppressMessageAttribute.Target">
<summary>
Gets or sets a fully qualified path that represents the target of the attribute.
</summary>
<remarks>
The <see cref="P:System.Diagnostics.CodeAnalysis.UnconditionalSuppressMessageAttribute.Target"/> property is an optional argument identifying the analysis target
of the attribute. An example value is "System.IO.Stream.ctor():System.Void".
Because it is fully qualified, it can be long, particularly for targets such as parameters.
The analysis tool user interface should be capable of automatically formatting the parameter.
</remarks>
</member>
<member name="P:System.Diagnostics.CodeAnalysis.UnconditionalSuppressMessageAttribute.MessageId">
<summary>
Gets or sets an optional argument expanding on exclusion criteria.
</summary>
<remarks>
The <see cref="P:System.Diagnostics.CodeAnalysis.UnconditionalSuppressMessageAttribute.MessageId"/> property is an optional argument that specifies additional
exclusion where the literal metadata target is not sufficiently precise. For example,
the <see cref="T:System.Diagnostics.CodeAnalysis.UnconditionalSuppressMessageAttribute"/> cannot be applied within a method,
and it may be desirable to suppress a violation against a statement in the method that will
give a rule violation, but not against all statements in the method.
</remarks>
</member>
<member name="P:System.Diagnostics.CodeAnalysis.UnconditionalSuppressMessageAttribute.Justification">
<summary>
Gets or sets the justification for suppressing the code analysis message.
</summary>
</member>
<member name="T:System.Diagnostics.CodeAnalysis.AllowNullAttribute">
<summary>Specifies that null is allowed as an input even if the corresponding type disallows it.</summary>
</member>
<member name="T:System.Diagnostics.CodeAnalysis.DisallowNullAttribute">
<summary>Specifies that null is disallowed as an input even if the corresponding type allows it.</summary>
</member>
<member name="T:System.Diagnostics.CodeAnalysis.MaybeNullAttribute">
<summary>Specifies that an output may be null even if the corresponding type disallows it.</summary>
</member>
<member name="T:System.Diagnostics.CodeAnalysis.NotNullAttribute">
<summary>Specifies that an output will not be null even if the corresponding type allows it. Specifies that an input argument was not null when the call returns.</summary>
</member>
<member name="T:System.Diagnostics.CodeAnalysis.MaybeNullWhenAttribute">
<summary>Specifies that when a method returns <see cref="P:System.Diagnostics.CodeAnalysis.MaybeNullWhenAttribute.ReturnValue"/>, the parameter may be null even if the corresponding type disallows it.</summary>
</member>
<member name="M:System.Diagnostics.CodeAnalysis.MaybeNullWhenAttribute.#ctor(System.Boolean)">
<summary>Initializes the attribute with the specified return value condition.</summary>
<param name="returnValue">
The return value condition. If the method returns this value, the associated parameter may be null.
</param>
</member>
<member name="P:System.Diagnostics.CodeAnalysis.MaybeNullWhenAttribute.ReturnValue">
<summary>Gets the return value condition.</summary>
</member>
<member name="T:System.Diagnostics.CodeAnalysis.NotNullWhenAttribute">
<summary>Specifies that when a method returns <see cref="P:System.Diagnostics.CodeAnalysis.NotNullWhenAttribute.ReturnValue"/>, the parameter will not be null even if the corresponding type allows it.</summary>
</member>
<member name="M:System.Diagnostics.CodeAnalysis.NotNullWhenAttribute.#ctor(System.Boolean)">
<summary>Initializes the attribute with the specified return value condition.</summary>
<param name="returnValue">
The return value condition. If the method returns this value, the associated parameter will not be null.
</param>
</member>
<member name="P:System.Diagnostics.CodeAnalysis.NotNullWhenAttribute.ReturnValue">
<summary>Gets the return value condition.</summary>
</member>
<member name="T:System.Diagnostics.CodeAnalysis.NotNullIfNotNullAttribute">
<summary>Specifies that the output will be non-null if the named parameter is non-null.</summary>
</member>
<member name="M:System.Diagnostics.CodeAnalysis.NotNullIfNotNullAttribute.#ctor(System.String)">
<summary>Initializes the attribute with the associated parameter name.</summary>
<param name="parameterName">
The associated parameter name. The output will be non-null if the argument to the parameter specified is non-null.
</param>
</member>
<member name="P:System.Diagnostics.CodeAnalysis.NotNullIfNotNullAttribute.ParameterName">
<summary>Gets the associated parameter name.</summary>
</member>
<member name="T:System.Diagnostics.CodeAnalysis.DoesNotReturnAttribute">
<summary>Applied to a method that will never return under any circumstance.</summary>
</member>
<member name="T:System.Diagnostics.CodeAnalysis.DoesNotReturnIfAttribute">
<summary>Specifies that the method will not return if the associated Boolean parameter is passed the specified value.</summary>
</member>
<member name="M:System.Diagnostics.CodeAnalysis.DoesNotReturnIfAttribute.#ctor(System.Boolean)">
<summary>Initializes the attribute with the specified parameter value.</summary>
<param name="parameterValue">
The condition parameter value. Code after the method will be considered unreachable by diagnostics if the argument to
the associated parameter matches this value.
</param>
</member>
<member name="P:System.Diagnostics.CodeAnalysis.DoesNotReturnIfAttribute.ParameterValue">
<summary>Gets the condition parameter value.</summary>
</member>
<member name="T:System.Diagnostics.CodeAnalysis.MemberNotNullAttribute">
<summary>Specifies that the method or property will ensure that the listed field and property members have not-null values.</summary>
</member>
<member name="M:System.Diagnostics.CodeAnalysis.MemberNotNullAttribute.#ctor(System.String)">
<summary>Initializes the attribute with a field or property member.</summary>
<param name="member">
The field or property member that is promised to be not-null.
</param>
</member>
<member name="M:System.Diagnostics.CodeAnalysis.MemberNotNullAttribute.#ctor(System.String[])">
<summary>Initializes the attribute with the list of field and property members.</summary>
<param name="members">
The list of field and property members that are promised to be not-null.
</param>
</member>
<member name="P:System.Diagnostics.CodeAnalysis.MemberNotNullAttribute.Members">
<summary>Gets field or property member names.</summary>
</member>
<member name="T:System.Diagnostics.CodeAnalysis.MemberNotNullWhenAttribute">
<summary>Specifies that the method or property will ensure that the listed field and property members have not-null values when returning with the specified return value condition.</summary>
</member>
<member name="M:System.Diagnostics.CodeAnalysis.MemberNotNullWhenAttribute.#ctor(System.Boolean,System.String)">
<summary>Initializes the attribute with the specified return value condition and a field or property member.</summary>
<param name="returnValue">
The return value condition. If the method returns this value, the associated field or property member will not be null.
</param>
<param name="member">
The field or property member that is promised to be not-null.
</param>
</member>
<member name="M:System.Diagnostics.CodeAnalysis.MemberNotNullWhenAttribute.#ctor(System.Boolean,System.String[])">
<summary>Initializes the attribute with the specified return value condition and list of field and property members.</summary>
<param name="returnValue">
The return value condition. If the method returns this value, the associated field and property members will not be null.
</param>
<param name="members">
The list of field and property members that are promised to be not-null.
</param>
</member>
<member name="P:System.Diagnostics.CodeAnalysis.MemberNotNullWhenAttribute.ReturnValue">
<summary>Gets the return value condition.</summary>
</member>
<member name="P:System.Diagnostics.CodeAnalysis.MemberNotNullWhenAttribute.Members">
<summary>Gets field or property member names.</summary>
</member>
<member name="P:System.SR.Error_CannotActivateAbstractOrInterface">
<summary>Cannot create instance of type '{0}' because it is either abstract or an interface.</summary>
</member>
<member name="P:System.SR.Error_CannotBindToConstructorParameter">
<summary>Cannot create instance of type '{0}' because one or more parameters cannot be bound to. Constructor parameters cannot be declared as in, out, or ref. Invalid parameters are: '{1}'</summary>
</member>
<member name="P:System.SR.Error_ConstructorParametersDoNotMatchProperties">
<summary>Cannot create instance of type '{0}' because one or more parameters cannot be bound to. Constructor parameters must have corresponding properties. Fields are not supported. Missing properties are: '{1}'</summary>
</member>
<member name="P:System.SR.Error_FailedBinding">
<summary>Failed to convert configuration value at '{0}' to type '{1}'.</summary>
</member>
<member name="P:System.SR.Error_FailedToActivate">
<summary>Failed to create instance of type '{0}'.</summary>
</member>
<member name="P:System.SR.Error_GeneralErrorWhenBinding">
<summary>'{0}' was set and binding has failed. The likely cause is an invalid configuration value.</summary>
</member>
<member name="P:System.SR.Error_MissingConfig">
<summary>'{0}' was set on the provided {1}, but the following properties were not found on the instance of {2}: {3}</summary>
</member>
<member name="P:System.SR.Error_MissingPublicInstanceConstructor">
<summary>Cannot create instance of type '{0}' because it is missing a public instance constructor.</summary>
</member>
<member name="P:System.SR.Error_MultipleParameterizedConstructors">
<summary>Cannot create instance of type '{0}' because it has multiple public parameterized constructors.</summary>
</member>
<member name="P:System.SR.Error_ParameterBeingBoundToIsUnnamed">
<summary>Cannot create instance of type '{0}' because one or more parameters are unnamed.</summary>
</member>
<member name="P:System.SR.Error_ParameterHasNoMatchingConfig">
<summary>Cannot create instance of type '{0}' because parameter '{1}' has no matching config. Each parameter in the constructor that does not have a default value must have a corresponding config entry.</summary>
</member>
<member name="P:System.SR.Error_UnsupportedMultidimensionalArray">
<summary>Cannot create instance of type '{0}' because multidimensional arrays are not supported.</summary>
</member>
</members>
</doc>

View File

@@ -0,0 +1,608 @@
<?xml version="1.0"?>
<doc>
<assembly>
<name>Microsoft.Extensions.Options.ConfigurationExtensions</name>
</assembly>
<members>
<member name="T:Microsoft.Extensions.Options.ConfigurationChangeTokenSource`1">
<summary>
Creates <see cref="T:Microsoft.Extensions.Primitives.IChangeToken"/>s so that <see cref="T:Microsoft.Extensions.Options.IOptionsMonitor`1"/> gets
notified when <see cref="T:Microsoft.Extensions.Configuration.IConfiguration"/> changes.
</summary>
<typeparam name="TOptions"></typeparam>
</member>
<member name="M:Microsoft.Extensions.Options.ConfigurationChangeTokenSource`1.#ctor(Microsoft.Extensions.Configuration.IConfiguration)">
<summary>
Constructor taking the <see cref="T:Microsoft.Extensions.Configuration.IConfiguration"/> instance to watch.
</summary>
<param name="config">The configuration instance.</param>
</member>
<member name="M:Microsoft.Extensions.Options.ConfigurationChangeTokenSource`1.#ctor(System.String,Microsoft.Extensions.Configuration.IConfiguration)">
<summary>
Constructor taking the <see cref="T:Microsoft.Extensions.Configuration.IConfiguration"/> instance to watch.
</summary>
<param name="name">The name of the options instance being watched.</param>
<param name="config">The configuration instance.</param>
</member>
<member name="P:Microsoft.Extensions.Options.ConfigurationChangeTokenSource`1.Name">
<summary>
The name of the option instance being changed.
</summary>
</member>
<member name="M:Microsoft.Extensions.Options.ConfigurationChangeTokenSource`1.GetChangeToken">
<summary>
Returns the reloadToken from the <see cref="T:Microsoft.Extensions.Configuration.IConfiguration"/>.
</summary>
<returns></returns>
</member>
<member name="T:Microsoft.Extensions.Options.ConfigureFromConfigurationOptions`1">
<summary>
Configures an option instance by using <see cref="M:Microsoft.Extensions.Configuration.ConfigurationBinder.Bind(Microsoft.Extensions.Configuration.IConfiguration,System.Object)"/> against an <see cref="T:Microsoft.Extensions.Configuration.IConfiguration"/>.
</summary>
<typeparam name="TOptions">The type of options to bind.</typeparam>
</member>
<member name="M:Microsoft.Extensions.Options.ConfigureFromConfigurationOptions`1.#ctor(Microsoft.Extensions.Configuration.IConfiguration)">
<summary>
Constructor that takes the <see cref="T:Microsoft.Extensions.Configuration.IConfiguration"/> instance to bind against.
</summary>
<param name="config">The <see cref="T:Microsoft.Extensions.Configuration.IConfiguration"/> instance.</param>
</member>
<member name="T:Microsoft.Extensions.Options.NamedConfigureFromConfigurationOptions`1">
<summary>
Configures an option instance by using <see cref="M:Microsoft.Extensions.Configuration.ConfigurationBinder.Bind(Microsoft.Extensions.Configuration.IConfiguration,System.Object)"/> against an <see cref="T:Microsoft.Extensions.Configuration.IConfiguration"/>.
</summary>
<typeparam name="TOptions">The type of options to bind.</typeparam>
</member>
<member name="M:Microsoft.Extensions.Options.NamedConfigureFromConfigurationOptions`1.#ctor(System.String,Microsoft.Extensions.Configuration.IConfiguration)">
<summary>
Constructor that takes the <see cref="T:Microsoft.Extensions.Configuration.IConfiguration"/> instance to bind against.
</summary>
<param name="name">The name of the options instance.</param>
<param name="config">The <see cref="T:Microsoft.Extensions.Configuration.IConfiguration"/> instance.</param>
</member>
<member name="M:Microsoft.Extensions.Options.NamedConfigureFromConfigurationOptions`1.#ctor(System.String,Microsoft.Extensions.Configuration.IConfiguration,System.Action{Microsoft.Extensions.Configuration.BinderOptions})">
<summary>
Constructor that takes the <see cref="T:Microsoft.Extensions.Configuration.IConfiguration"/> instance to bind against.
</summary>
<param name="name">The name of the options instance.</param>
<param name="config">The <see cref="T:Microsoft.Extensions.Configuration.IConfiguration"/> instance.</param>
<param name="configureBinder">Used to configure the <see cref="T:Microsoft.Extensions.Configuration.BinderOptions"/>.</param>
</member>
<member name="T:Microsoft.Extensions.DependencyInjection.OptionsBuilderConfigurationExtensions">
<summary>
Extension methods for adding configuration related options services to the DI container via <see cref="T:Microsoft.Extensions.Options.OptionsBuilder`1"/>.
</summary>
</member>
<member name="M:Microsoft.Extensions.DependencyInjection.OptionsBuilderConfigurationExtensions.Bind``1(Microsoft.Extensions.Options.OptionsBuilder{``0},Microsoft.Extensions.Configuration.IConfiguration)">
<summary>
Registers a configuration instance which <typeparamref name="TOptions"/> will bind against.
</summary>
<typeparam name="TOptions">The options type to be configured.</typeparam>
<param name="optionsBuilder">The options builder to add the services to.</param>
<param name="config">The configuration being bound.</param>
<returns>The <see cref="T:Microsoft.Extensions.Options.OptionsBuilder`1"/> so that additional calls can be chained.</returns>
</member>
<member name="M:Microsoft.Extensions.DependencyInjection.OptionsBuilderConfigurationExtensions.Bind``1(Microsoft.Extensions.Options.OptionsBuilder{``0},Microsoft.Extensions.Configuration.IConfiguration,System.Action{Microsoft.Extensions.Configuration.BinderOptions})">
<summary>
Registers a configuration instance which <typeparamref name="TOptions"/> will bind against.
</summary>
<typeparam name="TOptions">The options type to be configured.</typeparam>
<param name="optionsBuilder">The options builder to add the services to.</param>
<param name="config">The configuration being bound.</param>
<param name="configureBinder">Used to configure the <see cref="T:Microsoft.Extensions.Configuration.BinderOptions"/>.</param>
<returns>The <see cref="T:Microsoft.Extensions.Options.OptionsBuilder`1"/> so that additional calls can be chained.</returns>
</member>
<member name="M:Microsoft.Extensions.DependencyInjection.OptionsBuilderConfigurationExtensions.BindConfiguration``1(Microsoft.Extensions.Options.OptionsBuilder{``0},System.String,System.Action{Microsoft.Extensions.Configuration.BinderOptions})">
<summary>
Registers the dependency injection container to bind <typeparamref name="TOptions"/> against
the <see cref="T:Microsoft.Extensions.Configuration.IConfiguration"/> obtained from the DI service provider.
</summary>
<typeparam name="TOptions">The options type to be configured.</typeparam>
<param name="optionsBuilder">The options builder to add the services to.</param>
<param name="configSectionPath">The name of the configuration section to bind from.</param>
<param name="configureBinder">Optional. Used to configure the <see cref="T:Microsoft.Extensions.Configuration.BinderOptions"/>.</param>
<returns>The <see cref="T:Microsoft.Extensions.Options.OptionsBuilder`1"/> so that additional calls can be chained.</returns>
<exception cref="T:System.ArgumentNullException">
<paramref name="optionsBuilder"/> or <paramref name="configSectionPath" /> is <see langword="null"/>.
</exception>
<seealso cref="M:Microsoft.Extensions.DependencyInjection.OptionsBuilderConfigurationExtensions.Bind``1(Microsoft.Extensions.Options.OptionsBuilder{``0},Microsoft.Extensions.Configuration.IConfiguration,System.Action{Microsoft.Extensions.Configuration.BinderOptions})"/>
</member>
<member name="T:Microsoft.Extensions.DependencyInjection.OptionsConfigurationServiceCollectionExtensions">
<summary>
Extension methods for adding configuration-related options services to the DI container.
</summary>
</member>
<member name="M:Microsoft.Extensions.DependencyInjection.OptionsConfigurationServiceCollectionExtensions.Configure``1(Microsoft.Extensions.DependencyInjection.IServiceCollection,Microsoft.Extensions.Configuration.IConfiguration)">
<summary>
Registers a configuration instance that <typeparamref name="TOptions" /> will bind against.
</summary>
<typeparam name="TOptions">The type of options being configured.</typeparam>
<param name="services">The <see cref="T:Microsoft.Extensions.DependencyInjection.IServiceCollection"/> to add the services to.</param>
<param name="config">The configuration being bound.</param>
<returns>The <see cref="T:Microsoft.Extensions.DependencyInjection.IServiceCollection"/> so that additional calls can be chained.</returns>
</member>
<member name="M:Microsoft.Extensions.DependencyInjection.OptionsConfigurationServiceCollectionExtensions.Configure``1(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.String,Microsoft.Extensions.Configuration.IConfiguration)">
<summary>
Registers a configuration instance that <typeparamref name="TOptions" /> will bind against.
</summary>
<typeparam name="TOptions">The type of options being configured.</typeparam>
<param name="services">The <see cref="T:Microsoft.Extensions.DependencyInjection.IServiceCollection"/> to add the services to.</param>
<param name="name">The name of the options instance.</param>
<param name="config">The configuration being bound.</param>
<returns>The <see cref="T:Microsoft.Extensions.DependencyInjection.IServiceCollection"/> so that additional calls can be chained.</returns>
</member>
<member name="M:Microsoft.Extensions.DependencyInjection.OptionsConfigurationServiceCollectionExtensions.Configure``1(Microsoft.Extensions.DependencyInjection.IServiceCollection,Microsoft.Extensions.Configuration.IConfiguration,System.Action{Microsoft.Extensions.Configuration.BinderOptions})">
<summary>
Registers a configuration instance that <typeparamref name="TOptions" /> will bind against.
</summary>
<typeparam name="TOptions">The type of options being configured.</typeparam>
<param name="services">The <see cref="T:Microsoft.Extensions.DependencyInjection.IServiceCollection"/> to add the services to.</param>
<param name="config">The configuration being bound.</param>
<param name="configureBinder">Used to configure the <see cref="T:Microsoft.Extensions.Configuration.BinderOptions"/>.</param>
<returns>The <see cref="T:Microsoft.Extensions.DependencyInjection.IServiceCollection"/> so that additional calls can be chained.</returns>
</member>
<member name="M:Microsoft.Extensions.DependencyInjection.OptionsConfigurationServiceCollectionExtensions.Configure``1(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.String,Microsoft.Extensions.Configuration.IConfiguration,System.Action{Microsoft.Extensions.Configuration.BinderOptions})">
<summary>
Registers a configuration instance that <typeparamref name="TOptions" /> will bind against.
</summary>
<typeparam name="TOptions">The type of options being configured.</typeparam>
<param name="services">The <see cref="T:Microsoft.Extensions.DependencyInjection.IServiceCollection"/> to add the services to.</param>
<param name="name">The name of the options instance.</param>
<param name="config">The configuration being bound.</param>
<param name="configureBinder">Used to configure the <see cref="T:Microsoft.Extensions.Configuration.BinderOptions"/>.</param>
<returns>The <see cref="T:Microsoft.Extensions.DependencyInjection.IServiceCollection"/> so that additional calls can be chained.</returns>
</member>
<member name="M:System.ThrowHelper.ThrowIfNull(System.Object,System.String)">
<summary>Throws an <see cref="T:System.ArgumentNullException"/> if <paramref name="argument"/> is null.</summary>
<param name="argument">The reference type argument to validate as non-null.</param>
<param name="paramName">The name of the parameter with which <paramref name="argument"/> corresponds.</param>
</member>
<member name="M:System.ThrowHelper.IfNullOrWhitespace(System.String,System.String)">
<summary>
Throws either an <see cref="T:System.ArgumentNullException"/> or an <see cref="T:System.ArgumentException"/>
if the specified string is <see langword="null"/> or whitespace respectively.
</summary>
<param name="argument">String to be checked for <see langword="null"/> or whitespace.</param>
<param name="paramName">The name of the parameter being checked.</param>
<returns>The original value of <paramref name="argument"/>.</returns>
</member>
<member name="T:System.Runtime.InteropServices.LibraryImportAttribute">
<summary>
Attribute used to indicate a source generator should create a function for marshalling
arguments instead of relying on the runtime to generate an equivalent marshalling function at run-time.
</summary>
<remarks>
This attribute is meaningless if the source generator associated with it is not enabled.
The current built-in source generator only supports C# and only supplies an implementation when
applied to static, partial, non-generic methods.
</remarks>
</member>
<member name="M:System.Runtime.InteropServices.LibraryImportAttribute.#ctor(System.String)">
<summary>
Initializes a new instance of the <see cref="T:System.Runtime.InteropServices.LibraryImportAttribute"/>.
</summary>
<param name="libraryName">Name of the library containing the import.</param>
</member>
<member name="P:System.Runtime.InteropServices.LibraryImportAttribute.LibraryName">
<summary>
Gets the name of the library containing the import.
</summary>
</member>
<member name="P:System.Runtime.InteropServices.LibraryImportAttribute.EntryPoint">
<summary>
Gets or sets the name of the entry point to be called.
</summary>
</member>
<member name="P:System.Runtime.InteropServices.LibraryImportAttribute.StringMarshalling">
<summary>
Gets or sets how to marshal string arguments to the method.
</summary>
<remarks>
If this field is set to a value other than <see cref="F:System.Runtime.InteropServices.StringMarshalling.Custom" />,
<see cref="P:System.Runtime.InteropServices.LibraryImportAttribute.StringMarshallingCustomType" /> must not be specified.
</remarks>
</member>
<member name="P:System.Runtime.InteropServices.LibraryImportAttribute.StringMarshallingCustomType">
<summary>
Gets or sets the <see cref="T:System.Type"/> used to control how string arguments to the method are marshalled.
</summary>
<remarks>
If this field is specified, <see cref="P:System.Runtime.InteropServices.LibraryImportAttribute.StringMarshalling" /> must not be specified
or must be set to <see cref="F:System.Runtime.InteropServices.StringMarshalling.Custom" />.
</remarks>
</member>
<member name="P:System.Runtime.InteropServices.LibraryImportAttribute.SetLastError">
<summary>
Gets or sets whether the callee sets an error (SetLastError on Windows or errno
on other platforms) before returning from the attributed method.
</summary>
</member>
<member name="T:System.Runtime.InteropServices.StringMarshalling">
<summary>
Specifies how strings should be marshalled for generated p/invokes
</summary>
</member>
<member name="F:System.Runtime.InteropServices.StringMarshalling.Custom">
<summary>
Indicates the user is supplying a specific marshaller in <see cref="P:System.Runtime.InteropServices.LibraryImportAttribute.StringMarshallingCustomType"/>.
</summary>
</member>
<member name="F:System.Runtime.InteropServices.StringMarshalling.Utf8">
<summary>
Use the platform-provided UTF-8 marshaller.
</summary>
</member>
<member name="F:System.Runtime.InteropServices.StringMarshalling.Utf16">
<summary>
Use the platform-provided UTF-16 marshaller.
</summary>
</member>
<member name="T:System.Diagnostics.CodeAnalysis.DynamicallyAccessedMembersAttribute">
<summary>
Indicates that certain members on a specified <see cref="T:System.Type"/> are accessed dynamically,
for example through <see cref="N:System.Reflection"/>.
</summary>
<remarks>
This allows tools to understand which members are being accessed during the execution
of a program.
This attribute is valid on members whose type is <see cref="T:System.Type"/> or <see cref="T:System.String"/>.
When this attribute is applied to a location of type <see cref="T:System.String"/>, the assumption is
that the string represents a fully qualified type name.
When this attribute is applied to a class, interface, or struct, the members specified
can be accessed dynamically on <see cref="T:System.Type"/> instances returned from calling
<see cref="M:System.Object.GetType"/> on instances of that class, interface, or struct.
If the attribute is applied to a method it's treated as a special case and it implies
the attribute should be applied to the "this" parameter of the method. As such the attribute
should only be used on instance methods of types assignable to System.Type (or string, but no methods
will use it there).
</remarks>
</member>
<member name="M:System.Diagnostics.CodeAnalysis.DynamicallyAccessedMembersAttribute.#ctor(System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes)">
<summary>
Initializes a new instance of the <see cref="T:System.Diagnostics.CodeAnalysis.DynamicallyAccessedMembersAttribute"/> class
with the specified member types.
</summary>
<param name="memberTypes">The types of members dynamically accessed.</param>
</member>
<member name="P:System.Diagnostics.CodeAnalysis.DynamicallyAccessedMembersAttribute.MemberTypes">
<summary>
Gets the <see cref="T:System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes"/> which specifies the type
of members dynamically accessed.
</summary>
</member>
<member name="T:System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes">
<summary>
Specifies the types of members that are dynamically accessed.
This enumeration has a <see cref="T:System.FlagsAttribute"/> attribute that allows a
bitwise combination of its member values.
</summary>
</member>
<member name="F:System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes.None">
<summary>
Specifies no members.
</summary>
</member>
<member name="F:System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes.PublicParameterlessConstructor">
<summary>
Specifies the default, parameterless public constructor.
</summary>
</member>
<member name="F:System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes.PublicConstructors">
<summary>
Specifies all public constructors.
</summary>
</member>
<member name="F:System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes.NonPublicConstructors">
<summary>
Specifies all non-public constructors.
</summary>
</member>
<member name="F:System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes.PublicMethods">
<summary>
Specifies all public methods.
</summary>
</member>
<member name="F:System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes.NonPublicMethods">
<summary>
Specifies all non-public methods.
</summary>
</member>
<member name="F:System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes.PublicFields">
<summary>
Specifies all public fields.
</summary>
</member>
<member name="F:System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes.NonPublicFields">
<summary>
Specifies all non-public fields.
</summary>
</member>
<member name="F:System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes.PublicNestedTypes">
<summary>
Specifies all public nested types.
</summary>
</member>
<member name="F:System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes.NonPublicNestedTypes">
<summary>
Specifies all non-public nested types.
</summary>
</member>
<member name="F:System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes.PublicProperties">
<summary>
Specifies all public properties.
</summary>
</member>
<member name="F:System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes.NonPublicProperties">
<summary>
Specifies all non-public properties.
</summary>
</member>
<member name="F:System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes.PublicEvents">
<summary>
Specifies all public events.
</summary>
</member>
<member name="F:System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes.NonPublicEvents">
<summary>
Specifies all non-public events.
</summary>
</member>
<member name="F:System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes.Interfaces">
<summary>
Specifies all interfaces implemented by the type.
</summary>
</member>
<member name="F:System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes.All">
<summary>
Specifies all members.
</summary>
</member>
<member name="T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute">
<summary>
Indicates that the specified method requires the ability to generate new code at runtime,
for example through <see cref="N:System.Reflection"/>.
</summary>
<remarks>
This allows tools to understand which methods are unsafe to call when compiling ahead of time.
</remarks>
</member>
<member name="M:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute.#ctor(System.String)">
<summary>
Initializes a new instance of the <see cref="T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute"/> class
with the specified message.
</summary>
<param name="message">
A message that contains information about the usage of dynamic code.
</param>
</member>
<member name="P:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute.Message">
<summary>
Gets a message that contains information about the usage of dynamic code.
</summary>
</member>
<member name="P:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute.Url">
<summary>
Gets or sets an optional URL that contains more information about the method,
why it requires dynamic code, and what options a consumer has to deal with it.
</summary>
</member>
<member name="T:System.Diagnostics.CodeAnalysis.RequiresUnreferencedCodeAttribute">
<summary>
Indicates that the specified method requires dynamic access to code that is not referenced
statically, for example through <see cref="N:System.Reflection"/>.
</summary>
<remarks>
This allows tools to understand which methods are unsafe to call when removing unreferenced
code from an application.
</remarks>
</member>
<member name="M:System.Diagnostics.CodeAnalysis.RequiresUnreferencedCodeAttribute.#ctor(System.String)">
<summary>
Initializes a new instance of the <see cref="T:System.Diagnostics.CodeAnalysis.RequiresUnreferencedCodeAttribute"/> class
with the specified message.
</summary>
<param name="message">
A message that contains information about the usage of unreferenced code.
</param>
</member>
<member name="P:System.Diagnostics.CodeAnalysis.RequiresUnreferencedCodeAttribute.Message">
<summary>
Gets a message that contains information about the usage of unreferenced code.
</summary>
</member>
<member name="P:System.Diagnostics.CodeAnalysis.RequiresUnreferencedCodeAttribute.Url">
<summary>
Gets or sets an optional URL that contains more information about the method,
why it requires unreferenced code, and what options a consumer has to deal with it.
</summary>
</member>
<member name="T:System.Diagnostics.CodeAnalysis.UnconditionalSuppressMessageAttribute">
<summary>
Suppresses reporting of a specific rule violation, allowing multiple suppressions on a
single code artifact.
</summary>
<remarks>
<see cref="T:System.Diagnostics.CodeAnalysis.UnconditionalSuppressMessageAttribute"/> is different than
<see cref="T:System.Diagnostics.CodeAnalysis.SuppressMessageAttribute"/> in that it doesn't have a
<see cref="T:System.Diagnostics.ConditionalAttribute"/>. So it is always preserved in the compiled assembly.
</remarks>
</member>
<member name="M:System.Diagnostics.CodeAnalysis.UnconditionalSuppressMessageAttribute.#ctor(System.String,System.String)">
<summary>
Initializes a new instance of the <see cref="T:System.Diagnostics.CodeAnalysis.UnconditionalSuppressMessageAttribute"/>
class, specifying the category of the tool and the identifier for an analysis rule.
</summary>
<param name="category">The category for the attribute.</param>
<param name="checkId">The identifier of the analysis rule the attribute applies to.</param>
</member>
<member name="P:System.Diagnostics.CodeAnalysis.UnconditionalSuppressMessageAttribute.Category">
<summary>
Gets the category identifying the classification of the attribute.
</summary>
<remarks>
The <see cref="P:System.Diagnostics.CodeAnalysis.UnconditionalSuppressMessageAttribute.Category"/> property describes the tool or tool analysis category
for which a message suppression attribute applies.
</remarks>
</member>
<member name="P:System.Diagnostics.CodeAnalysis.UnconditionalSuppressMessageAttribute.CheckId">
<summary>
Gets the identifier of the analysis tool rule to be suppressed.
</summary>
<remarks>
Concatenated together, the <see cref="P:System.Diagnostics.CodeAnalysis.UnconditionalSuppressMessageAttribute.Category"/> and <see cref="P:System.Diagnostics.CodeAnalysis.UnconditionalSuppressMessageAttribute.CheckId"/>
properties form a unique check identifier.
</remarks>
</member>
<member name="P:System.Diagnostics.CodeAnalysis.UnconditionalSuppressMessageAttribute.Scope">
<summary>
Gets or sets the scope of the code that is relevant for the attribute.
</summary>
<remarks>
The Scope property is an optional argument that specifies the metadata scope for which
the attribute is relevant.
</remarks>
</member>
<member name="P:System.Diagnostics.CodeAnalysis.UnconditionalSuppressMessageAttribute.Target">
<summary>
Gets or sets a fully qualified path that represents the target of the attribute.
</summary>
<remarks>
The <see cref="P:System.Diagnostics.CodeAnalysis.UnconditionalSuppressMessageAttribute.Target"/> property is an optional argument identifying the analysis target
of the attribute. An example value is "System.IO.Stream.ctor():System.Void".
Because it is fully qualified, it can be long, particularly for targets such as parameters.
The analysis tool user interface should be capable of automatically formatting the parameter.
</remarks>
</member>
<member name="P:System.Diagnostics.CodeAnalysis.UnconditionalSuppressMessageAttribute.MessageId">
<summary>
Gets or sets an optional argument expanding on exclusion criteria.
</summary>
<remarks>
The <see cref="P:System.Diagnostics.CodeAnalysis.UnconditionalSuppressMessageAttribute.MessageId"/> property is an optional argument that specifies additional
exclusion where the literal metadata target is not sufficiently precise. For example,
the <see cref="T:System.Diagnostics.CodeAnalysis.UnconditionalSuppressMessageAttribute"/> cannot be applied within a method,
and it may be desirable to suppress a violation against a statement in the method that will
give a rule violation, but not against all statements in the method.
</remarks>
</member>
<member name="P:System.Diagnostics.CodeAnalysis.UnconditionalSuppressMessageAttribute.Justification">
<summary>
Gets or sets the justification for suppressing the code analysis message.
</summary>
</member>
<member name="T:System.Diagnostics.CodeAnalysis.AllowNullAttribute">
<summary>Specifies that null is allowed as an input even if the corresponding type disallows it.</summary>
</member>
<member name="T:System.Diagnostics.CodeAnalysis.DisallowNullAttribute">
<summary>Specifies that null is disallowed as an input even if the corresponding type allows it.</summary>
</member>
<member name="T:System.Diagnostics.CodeAnalysis.MaybeNullAttribute">
<summary>Specifies that an output may be null even if the corresponding type disallows it.</summary>
</member>
<member name="T:System.Diagnostics.CodeAnalysis.NotNullAttribute">
<summary>Specifies that an output will not be null even if the corresponding type allows it. Specifies that an input argument was not null when the call returns.</summary>
</member>
<member name="T:System.Diagnostics.CodeAnalysis.MaybeNullWhenAttribute">
<summary>Specifies that when a method returns <see cref="P:System.Diagnostics.CodeAnalysis.MaybeNullWhenAttribute.ReturnValue"/>, the parameter may be null even if the corresponding type disallows it.</summary>
</member>
<member name="M:System.Diagnostics.CodeAnalysis.MaybeNullWhenAttribute.#ctor(System.Boolean)">
<summary>Initializes the attribute with the specified return value condition.</summary>
<param name="returnValue">
The return value condition. If the method returns this value, the associated parameter may be null.
</param>
</member>
<member name="P:System.Diagnostics.CodeAnalysis.MaybeNullWhenAttribute.ReturnValue">
<summary>Gets the return value condition.</summary>
</member>
<member name="T:System.Diagnostics.CodeAnalysis.NotNullWhenAttribute">
<summary>Specifies that when a method returns <see cref="P:System.Diagnostics.CodeAnalysis.NotNullWhenAttribute.ReturnValue"/>, the parameter will not be null even if the corresponding type allows it.</summary>
</member>
<member name="M:System.Diagnostics.CodeAnalysis.NotNullWhenAttribute.#ctor(System.Boolean)">
<summary>Initializes the attribute with the specified return value condition.</summary>
<param name="returnValue">
The return value condition. If the method returns this value, the associated parameter will not be null.
</param>
</member>
<member name="P:System.Diagnostics.CodeAnalysis.NotNullWhenAttribute.ReturnValue">
<summary>Gets the return value condition.</summary>
</member>
<member name="T:System.Diagnostics.CodeAnalysis.NotNullIfNotNullAttribute">
<summary>Specifies that the output will be non-null if the named parameter is non-null.</summary>
</member>
<member name="M:System.Diagnostics.CodeAnalysis.NotNullIfNotNullAttribute.#ctor(System.String)">
<summary>Initializes the attribute with the associated parameter name.</summary>
<param name="parameterName">
The associated parameter name. The output will be non-null if the argument to the parameter specified is non-null.
</param>
</member>
<member name="P:System.Diagnostics.CodeAnalysis.NotNullIfNotNullAttribute.ParameterName">
<summary>Gets the associated parameter name.</summary>
</member>
<member name="T:System.Diagnostics.CodeAnalysis.DoesNotReturnAttribute">
<summary>Applied to a method that will never return under any circumstance.</summary>
</member>
<member name="T:System.Diagnostics.CodeAnalysis.DoesNotReturnIfAttribute">
<summary>Specifies that the method will not return if the associated Boolean parameter is passed the specified value.</summary>
</member>
<member name="M:System.Diagnostics.CodeAnalysis.DoesNotReturnIfAttribute.#ctor(System.Boolean)">
<summary>Initializes the attribute with the specified parameter value.</summary>
<param name="parameterValue">
The condition parameter value. Code after the method will be considered unreachable by diagnostics if the argument to
the associated parameter matches this value.
</param>
</member>
<member name="P:System.Diagnostics.CodeAnalysis.DoesNotReturnIfAttribute.ParameterValue">
<summary>Gets the condition parameter value.</summary>
</member>
<member name="T:System.Diagnostics.CodeAnalysis.MemberNotNullAttribute">
<summary>Specifies that the method or property will ensure that the listed field and property members have not-null values.</summary>
</member>
<member name="M:System.Diagnostics.CodeAnalysis.MemberNotNullAttribute.#ctor(System.String)">
<summary>Initializes the attribute with a field or property member.</summary>
<param name="member">
The field or property member that is promised to be not-null.
</param>
</member>
<member name="M:System.Diagnostics.CodeAnalysis.MemberNotNullAttribute.#ctor(System.String[])">
<summary>Initializes the attribute with the list of field and property members.</summary>
<param name="members">
The list of field and property members that are promised to be not-null.
</param>
</member>
<member name="P:System.Diagnostics.CodeAnalysis.MemberNotNullAttribute.Members">
<summary>Gets field or property member names.</summary>
</member>
<member name="T:System.Diagnostics.CodeAnalysis.MemberNotNullWhenAttribute">
<summary>Specifies that the method or property will ensure that the listed field and property members have not-null values when returning with the specified return value condition.</summary>
</member>
<member name="M:System.Diagnostics.CodeAnalysis.MemberNotNullWhenAttribute.#ctor(System.Boolean,System.String)">
<summary>Initializes the attribute with the specified return value condition and a field or property member.</summary>
<param name="returnValue">
The return value condition. If the method returns this value, the associated field or property member will not be null.
</param>
<param name="member">
The field or property member that is promised to be not-null.
</param>
</member>
<member name="M:System.Diagnostics.CodeAnalysis.MemberNotNullWhenAttribute.#ctor(System.Boolean,System.String[])">
<summary>Initializes the attribute with the specified return value condition and list of field and property members.</summary>
<param name="returnValue">
The return value condition. If the method returns this value, the associated field and property members will not be null.
</param>
<param name="members">
The list of field and property members that are promised to be not-null.
</param>
</member>
<member name="P:System.Diagnostics.CodeAnalysis.MemberNotNullWhenAttribute.ReturnValue">
<summary>Gets the return value condition.</summary>
</member>
<member name="P:System.Diagnostics.CodeAnalysis.MemberNotNullWhenAttribute.Members">
<summary>Gets field or property member names.</summary>
</member>
</members>
</doc>

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,38 @@
<?xml version="1.0" encoding="utf-8"?><doc>
<assembly>
<name>System.Buffers</name>
</assembly>
<members>
<member name="T:System.Buffers.ArrayPool`1">
<summary>Provides a resource pool that enables reusing instances of type <see cref="T[]"></see>.</summary>
<typeparam name="T">The type of the objects that are in the resource pool.</typeparam>
</member>
<member name="M:System.Buffers.ArrayPool`1.#ctor">
<summary>Initializes a new instance of the <see cref="T:System.Buffers.ArrayPool`1"></see> class.</summary>
</member>
<member name="M:System.Buffers.ArrayPool`1.Create">
<summary>Creates a new instance of the <see cref="T:System.Buffers.ArrayPool`1"></see> class.</summary>
<returns>A new instance of the <see cref="System.Buffers.ArrayPool`1"></see> class.</returns>
</member>
<member name="M:System.Buffers.ArrayPool`1.Create(System.Int32,System.Int32)">
<summary>Creates a new instance of the <see cref="T:System.Buffers.ArrayPool`1"></see> class using the specifed configuration.</summary>
<param name="maxArrayLength">The maximum length of an array instance that may be stored in the pool.</param>
<param name="maxArraysPerBucket">The maximum number of array instances that may be stored in each bucket in the pool. The pool groups arrays of similar lengths into buckets for faster access.</param>
<returns>A new instance of the <see cref="System.Buffers.ArrayPool`1"></see> class with the specified configuration.</returns>
</member>
<member name="M:System.Buffers.ArrayPool`1.Rent(System.Int32)">
<summary>Retrieves a buffer that is at least the requested length.</summary>
<param name="minimumLength">The minimum length of the array.</param>
<returns>An array of type <see cref="T[]"></see> that is at least <paramref name="minimumLength">minimumLength</paramref> in length.</returns>
</member>
<member name="M:System.Buffers.ArrayPool`1.Return(`0[],System.Boolean)">
<summary>Returns an array to the pool that was previously obtained using the <see cref="M:System.Buffers.ArrayPool`1.Rent(System.Int32)"></see> method on the same <see cref="T:System.Buffers.ArrayPool`1"></see> instance.</summary>
<param name="array">A buffer to return to the pool that was previously obtained using the <see cref="M:System.Buffers.ArrayPool`1.Rent(System.Int32)"></see> method.</param>
<param name="clearArray">Indicates whether the contents of the buffer should be cleared before reuse. If <paramref name="clearArray">clearArray</paramref> is set to true, and if the pool will store the buffer to enable subsequent reuse, the <see cref="M:System.Buffers.ArrayPool`1.Return(`0[],System.Boolean)"></see> method will clear the <paramref name="array">array</paramref> of its contents so that a subsequent caller using the <see cref="M:System.Buffers.ArrayPool`1.Rent(System.Int32)"></see> method will not see the content of the previous caller. If <paramref name="clearArray">clearArray</paramref> is set to false or if the pool will release the buffer, the array&amp;#39;s contents are left unchanged.</param>
</member>
<member name="P:System.Buffers.ArrayPool`1.Shared">
<summary>Gets a shared <see cref="T:System.Buffers.ArrayPool`1"></see> instance.</summary>
<returns>A shared <see cref="System.Buffers.ArrayPool`1"></see> instance.</returns>
</member>
</members>
</doc>

View File

@@ -0,0 +1,355 @@
<?xml version="1.0" encoding="utf-8"?><doc>
<assembly>
<name>System.Memory</name>
</assembly>
<members>
<member name="T:System.Span`1">
<typeparam name="T"></typeparam>
</member>
<member name="M:System.Span`1.#ctor(`0[])">
<param name="array"></param>
</member>
<member name="M:System.Span`1.#ctor(System.Void*,System.Int32)">
<param name="pointer"></param>
<param name="length"></param>
</member>
<member name="M:System.Span`1.#ctor(`0[],System.Int32)">
<param name="array"></param>
<param name="start"></param>
</member>
<member name="M:System.Span`1.#ctor(`0[],System.Int32,System.Int32)">
<param name="array"></param>
<param name="start"></param>
<param name="length"></param>
</member>
<member name="M:System.Span`1.Clear">
</member>
<member name="M:System.Span`1.CopyTo(System.Span{`0})">
<param name="destination"></param>
</member>
<member name="M:System.Span`1.DangerousCreate(System.Object,`0@,System.Int32)">
<param name="obj"></param>
<param name="objectData"></param>
<param name="length"></param>
<returns></returns>
</member>
<member name="M:System.Span`1.DangerousGetPinnableReference">
<returns></returns>
</member>
<member name="P:System.Span`1.Empty">
<returns></returns>
</member>
<member name="M:System.Span`1.Equals(System.Object)">
<param name="obj"></param>
<returns></returns>
</member>
<member name="M:System.Span`1.Fill(`0)">
<param name="value"></param>
</member>
<member name="M:System.Span`1.GetHashCode">
<returns></returns>
</member>
<member name="P:System.Span`1.IsEmpty">
<returns></returns>
</member>
<member name="P:System.Span`1.Item(System.Int32)">
<param name="index"></param>
<returns></returns>
</member>
<member name="P:System.Span`1.Length">
<returns></returns>
</member>
<member name="M:System.Span`1.op_Equality(System.Span{`0},System.Span{`0})">
<param name="left"></param>
<param name="right"></param>
<returns></returns>
</member>
<member name="M:System.Span`1.op_Implicit(System.ArraySegment{T})~System.Span{T}">
<param name="arraySegment"></param>
<returns></returns>
</member>
<member name="M:System.Span`1.op_Implicit(System.Span{T})~System.ReadOnlySpan{T}">
<param name="span"></param>
<returns></returns>
</member>
<member name="M:System.Span`1.op_Implicit(T[])~System.Span{T}">
<param name="array"></param>
<returns></returns>
</member>
<member name="M:System.Span`1.op_Inequality(System.Span{`0},System.Span{`0})">
<param name="left"></param>
<param name="right"></param>
<returns></returns>
</member>
<member name="M:System.Span`1.Slice(System.Int32)">
<param name="start"></param>
<returns></returns>
</member>
<member name="M:System.Span`1.Slice(System.Int32,System.Int32)">
<param name="start"></param>
<param name="length"></param>
<returns></returns>
</member>
<member name="M:System.Span`1.ToArray">
<returns></returns>
</member>
<member name="M:System.Span`1.TryCopyTo(System.Span{`0})">
<param name="destination"></param>
<returns></returns>
</member>
<member name="T:System.SpanExtensions">
</member>
<member name="M:System.SpanExtensions.AsBytes``1(System.ReadOnlySpan{``0})">
<param name="source"></param>
<typeparam name="T"></typeparam>
<returns></returns>
</member>
<member name="M:System.SpanExtensions.AsBytes``1(System.Span{``0})">
<param name="source"></param>
<typeparam name="T"></typeparam>
<returns></returns>
</member>
<member name="M:System.SpanExtensions.AsSpan(System.String)">
<param name="text"></param>
<returns></returns>
</member>
<member name="M:System.SpanExtensions.AsSpan``1(System.ArraySegment{``0})">
<param name="arraySegment"></param>
<typeparam name="T"></typeparam>
<returns></returns>
</member>
<member name="M:System.SpanExtensions.AsSpan``1(``0[])">
<param name="array"></param>
<typeparam name="T"></typeparam>
<returns></returns>
</member>
<member name="M:System.SpanExtensions.CopyTo``1(``0[],System.Span{``0})">
<param name="array"></param>
<param name="destination"></param>
<typeparam name="T"></typeparam>
</member>
<member name="M:System.SpanExtensions.IndexOf(System.Span{System.Byte},System.ReadOnlySpan{System.Byte})">
<param name="span"></param>
<param name="value"></param>
<returns></returns>
</member>
<member name="M:System.SpanExtensions.IndexOf(System.Span{System.Byte},System.Byte)">
<param name="span"></param>
<param name="value"></param>
<returns></returns>
</member>
<member name="M:System.SpanExtensions.IndexOf(System.ReadOnlySpan{System.Byte},System.Byte)">
<param name="span"></param>
<param name="value"></param>
<returns></returns>
</member>
<member name="M:System.SpanExtensions.IndexOf(System.ReadOnlySpan{System.Byte},System.ReadOnlySpan{System.Byte})">
<param name="span"></param>
<param name="value"></param>
<returns></returns>
</member>
<member name="M:System.SpanExtensions.IndexOf``1(System.ReadOnlySpan{``0},System.ReadOnlySpan{``0})">
<param name="span"></param>
<param name="value"></param>
<typeparam name="T"></typeparam>
<returns></returns>
</member>
<member name="M:System.SpanExtensions.IndexOf``1(System.ReadOnlySpan{``0},``0)">
<param name="span"></param>
<param name="value"></param>
<typeparam name="T"></typeparam>
<returns></returns>
</member>
<member name="M:System.SpanExtensions.IndexOf``1(System.Span{``0},System.ReadOnlySpan{``0})">
<param name="span"></param>
<param name="value"></param>
<typeparam name="T"></typeparam>
<returns></returns>
</member>
<member name="M:System.SpanExtensions.IndexOf``1(System.Span{``0},``0)">
<param name="span"></param>
<param name="value"></param>
<typeparam name="T"></typeparam>
<returns></returns>
</member>
<member name="M:System.SpanExtensions.IndexOfAny(System.ReadOnlySpan{System.Byte},System.Byte,System.Byte,System.Byte)">
<param name="span"></param>
<param name="value0"></param>
<param name="value1"></param>
<param name="value2"></param>
<returns></returns>
</member>
<member name="M:System.SpanExtensions.IndexOfAny(System.Span{System.Byte},System.Byte,System.Byte,System.Byte)">
<param name="span"></param>
<param name="value0"></param>
<param name="value1"></param>
<param name="value2"></param>
<returns></returns>
</member>
<member name="M:System.SpanExtensions.IndexOfAny(System.Span{System.Byte},System.Byte,System.Byte)">
<param name="span"></param>
<param name="value0"></param>
<param name="value1"></param>
<returns></returns>
</member>
<member name="M:System.SpanExtensions.IndexOfAny(System.ReadOnlySpan{System.Byte},System.ReadOnlySpan{System.Byte})">
<param name="span"></param>
<param name="values"></param>
<returns></returns>
</member>
<member name="M:System.SpanExtensions.IndexOfAny(System.Span{System.Byte},System.ReadOnlySpan{System.Byte})">
<param name="span"></param>
<param name="values"></param>
<returns></returns>
</member>
<member name="M:System.SpanExtensions.IndexOfAny(System.ReadOnlySpan{System.Byte},System.Byte,System.Byte)">
<param name="span"></param>
<param name="value0"></param>
<param name="value1"></param>
<returns></returns>
</member>
<member name="M:System.SpanExtensions.NonPortableCast``2(System.ReadOnlySpan{``0})">
<param name="source"></param>
<typeparam name="TFrom"></typeparam>
<typeparam name="TTo"></typeparam>
<returns></returns>
</member>
<member name="M:System.SpanExtensions.NonPortableCast``2(System.Span{``0})">
<param name="source"></param>
<typeparam name="TFrom"></typeparam>
<typeparam name="TTo"></typeparam>
<returns></returns>
</member>
<member name="M:System.SpanExtensions.SequenceEqual(System.ReadOnlySpan{System.Byte},System.ReadOnlySpan{System.Byte})">
<param name="first"></param>
<param name="second"></param>
<returns></returns>
</member>
<member name="M:System.SpanExtensions.SequenceEqual(System.Span{System.Byte},System.ReadOnlySpan{System.Byte})">
<param name="first"></param>
<param name="second"></param>
<returns></returns>
</member>
<member name="M:System.SpanExtensions.SequenceEqual``1(System.ReadOnlySpan{``0},System.ReadOnlySpan{``0})">
<param name="first"></param>
<param name="second"></param>
<typeparam name="T"></typeparam>
<returns></returns>
</member>
<member name="M:System.SpanExtensions.SequenceEqual``1(System.Span{``0},System.ReadOnlySpan{``0})">
<param name="first"></param>
<param name="second"></param>
<typeparam name="T"></typeparam>
<returns></returns>
</member>
<member name="M:System.SpanExtensions.StartsWith(System.ReadOnlySpan{System.Byte},System.ReadOnlySpan{System.Byte})">
<param name="span"></param>
<param name="value"></param>
<returns></returns>
</member>
<member name="M:System.SpanExtensions.StartsWith(System.Span{System.Byte},System.ReadOnlySpan{System.Byte})">
<param name="span"></param>
<param name="value"></param>
<returns></returns>
</member>
<member name="M:System.SpanExtensions.StartsWith``1(System.ReadOnlySpan{``0},System.ReadOnlySpan{``0})">
<param name="span"></param>
<param name="value"></param>
<typeparam name="T"></typeparam>
<returns></returns>
</member>
<member name="M:System.SpanExtensions.StartsWith``1(System.Span{``0},System.ReadOnlySpan{``0})">
<param name="span"></param>
<param name="value"></param>
<typeparam name="T"></typeparam>
<returns></returns>
</member>
<member name="T:System.ReadOnlySpan`1">
<typeparam name="T"></typeparam>
</member>
<member name="M:System.ReadOnlySpan`1.#ctor(`0[])">
<param name="array"></param>
</member>
<member name="M:System.ReadOnlySpan`1.#ctor(System.Void*,System.Int32)">
<param name="pointer"></param>
<param name="length"></param>
</member>
<member name="M:System.ReadOnlySpan`1.#ctor(`0[],System.Int32)">
<param name="array"></param>
<param name="start"></param>
</member>
<member name="M:System.ReadOnlySpan`1.#ctor(`0[],System.Int32,System.Int32)">
<param name="array"></param>
<param name="start"></param>
<param name="length"></param>
</member>
<member name="M:System.ReadOnlySpan`1.CopyTo(System.Span{`0})">
<param name="destination"></param>
</member>
<member name="M:System.ReadOnlySpan`1.DangerousCreate(System.Object,`0@,System.Int32)">
<param name="obj"></param>
<param name="objectData"></param>
<param name="length"></param>
<returns></returns>
</member>
<member name="M:System.ReadOnlySpan`1.DangerousGetPinnableReference">
<returns></returns>
</member>
<member name="P:System.ReadOnlySpan`1.Empty">
<returns></returns>
</member>
<member name="M:System.ReadOnlySpan`1.Equals(System.Object)">
<param name="obj"></param>
<returns></returns>
</member>
<member name="M:System.ReadOnlySpan`1.GetHashCode">
<returns></returns>
</member>
<member name="P:System.ReadOnlySpan`1.IsEmpty">
<returns></returns>
</member>
<member name="P:System.ReadOnlySpan`1.Item(System.Int32)">
<param name="index"></param>
<returns></returns>
</member>
<member name="P:System.ReadOnlySpan`1.Length">
<returns></returns>
</member>
<member name="M:System.ReadOnlySpan`1.op_Equality(System.ReadOnlySpan{`0},System.ReadOnlySpan{`0})">
<param name="left"></param>
<param name="right"></param>
<returns></returns>
</member>
<member name="M:System.ReadOnlySpan`1.op_Implicit(System.ArraySegment{T})~System.ReadOnlySpan{T}">
<param name="arraySegment"></param>
<returns></returns>
</member>
<member name="M:System.ReadOnlySpan`1.op_Implicit(T[])~System.ReadOnlySpan{T}">
<param name="array"></param>
<returns></returns>
</member>
<member name="M:System.ReadOnlySpan`1.op_Inequality(System.ReadOnlySpan{`0},System.ReadOnlySpan{`0})">
<param name="left"></param>
<param name="right"></param>
<returns></returns>
</member>
<member name="M:System.ReadOnlySpan`1.Slice(System.Int32)">
<param name="start"></param>
<returns></returns>
</member>
<member name="M:System.ReadOnlySpan`1.Slice(System.Int32,System.Int32)">
<param name="start"></param>
<param name="length"></param>
<returns></returns>
</member>
<member name="M:System.ReadOnlySpan`1.ToArray">
<returns></returns>
</member>
<member name="M:System.ReadOnlySpan`1.TryCopyTo(System.Span{`0})">
<param name="destination"></param>
<returns></returns>
</member>
</members>
</doc>

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,291 @@
<?xml version="1.0" encoding="utf-8"?>
<doc>
<assembly>
<name>System.Runtime.CompilerServices.Unsafe</name>
</assembly>
<members>
<member name="T:System.Runtime.CompilerServices.Unsafe">
<summary>Contains generic, low-level functionality for manipulating pointers.</summary>
</member>
<member name="M:System.Runtime.CompilerServices.Unsafe.Add``1(``0@,System.Int32)">
<summary>Adds an element offset to the given reference.</summary>
<param name="source">The reference to add the offset to.</param>
<param name="elementOffset">The offset to add.</param>
<typeparam name="T">The type of reference.</typeparam>
<returns>A new reference that reflects the addition of offset to pointer.</returns>
</member>
<member name="M:System.Runtime.CompilerServices.Unsafe.Add``1(``0@,System.IntPtr)">
<summary>Adds an element offset to the given reference.</summary>
<param name="source">The reference to add the offset to.</param>
<param name="elementOffset">The offset to add.</param>
<typeparam name="T">The type of reference.</typeparam>
<returns>A new reference that reflects the addition of offset to pointer.</returns>
</member>
<member name="M:System.Runtime.CompilerServices.Unsafe.Add``1(``0@,System.UIntPtr)">
<summary>Adds an element offset to the given reference.</summary>
<param name="source">The reference to add the offset to.</param>
<param name="elementOffset">The offset to add.</param>
<typeparam name="T">The type of reference.</typeparam>
<returns>A new reference that reflects the addition of offset to pointer.</returns>
</member>
<member name="M:System.Runtime.CompilerServices.Unsafe.Add``1(System.Void*,System.Int32)">
<summary>Adds an element offset to the given void pointer.</summary>
<param name="source">The void pointer to add the offset to.</param>
<param name="elementOffset">The offset to add.</param>
<typeparam name="T">The type of void pointer.</typeparam>
<returns>A new void pointer that reflects the addition of offset to the specified pointer.</returns>
</member>
<member name="M:System.Runtime.CompilerServices.Unsafe.AddByteOffset``1(``0@,System.IntPtr)">
<summary>Adds a byte offset to the given reference.</summary>
<param name="source">The reference to add the offset to.</param>
<param name="byteOffset">The offset to add.</param>
<typeparam name="T">The type of reference.</typeparam>
<returns>A new reference that reflects the addition of byte offset to pointer.</returns>
</member>
<member name="M:System.Runtime.CompilerServices.Unsafe.AddByteOffset``1(``0@,System.UIntPtr)">
<summary>Adds a byte offset to the given reference.</summary>
<param name="source">The reference to add the offset to.</param>
<param name="byteOffset">The offset to add.</param>
<typeparam name="T">The type of reference.</typeparam>
<returns>A new reference that reflects the addition of byte offset to pointer.</returns>
</member>
<member name="M:System.Runtime.CompilerServices.Unsafe.AreSame``1(``0@,``0@)">
<summary>Determines whether the specified references point to the same location.</summary>
<param name="left">The first reference to compare.</param>
<param name="right">The second reference to compare.</param>
<typeparam name="T">The type of reference.</typeparam>
<returns>
<see langword="true" /> if <paramref name="left" /> and <paramref name="right" /> point to the same location; otherwise, <see langword="false" />.</returns>
</member>
<member name="M:System.Runtime.CompilerServices.Unsafe.As``1(System.Object)">
<summary>Casts the given object to the specified type.</summary>
<param name="o">The object to cast.</param>
<typeparam name="T">The type which the object will be cast to.</typeparam>
<returns>The original object, casted to the given type.</returns>
</member>
<member name="M:System.Runtime.CompilerServices.Unsafe.As``2(``0@)">
<summary>Reinterprets the given reference as a reference to a value of type <typeparamref name="TTo" />.</summary>
<param name="source">The reference to reinterpret.</param>
<typeparam name="TFrom">The type of reference to reinterpret.</typeparam>
<typeparam name="TTo">The desired type of the reference.</typeparam>
<returns>A reference to a value of type <typeparamref name="TTo" />.</returns>
</member>
<member name="M:System.Runtime.CompilerServices.Unsafe.AsPointer``1(``0@)">
<summary>Returns a pointer to the given by-ref parameter.</summary>
<param name="value">The object whose pointer is obtained.</param>
<typeparam name="T">The type of object.</typeparam>
<returns>A pointer to the given value.</returns>
</member>
<member name="M:System.Runtime.CompilerServices.Unsafe.AsRef``1(``0@)">
<summary>Reinterprets the given read-only reference as a reference.</summary>
<param name="source">The read-only reference to reinterpret.</param>
<typeparam name="T">The type of reference.</typeparam>
<returns>A reference to a value of type <typeparamref name="T" />.</returns>
</member>
<member name="M:System.Runtime.CompilerServices.Unsafe.AsRef``1(System.Void*)">
<summary>Reinterprets the given location as a reference to a value of type <typeparamref name="T" />.</summary>
<param name="source">The location of the value to reference.</param>
<typeparam name="T">The type of the interpreted location.</typeparam>
<returns>A reference to a value of type <typeparamref name="T" />.</returns>
</member>
<member name="M:System.Runtime.CompilerServices.Unsafe.ByteOffset``1(``0@,``0@)">
<summary>Determines the byte offset from origin to target from the given references.</summary>
<param name="origin">The reference to origin.</param>
<param name="target">The reference to target.</param>
<typeparam name="T">The type of reference.</typeparam>
<returns>Byte offset from origin to target i.e. <paramref name="target" /> - <paramref name="origin" />.</returns>
</member>
<member name="M:System.Runtime.CompilerServices.Unsafe.Copy``1(``0@,System.Void*)">
<summary>Copies a value of type <typeparamref name="T" /> to the given location.</summary>
<param name="destination">The location to copy to.</param>
<param name="source">A pointer to the value to copy.</param>
<typeparam name="T">The type of value to copy.</typeparam>
</member>
<member name="M:System.Runtime.CompilerServices.Unsafe.Copy``1(System.Void*,``0@)">
<summary>Copies a value of type <typeparamref name="T" /> to the given location.</summary>
<param name="destination">The location to copy to.</param>
<param name="source">A reference to the value to copy.</param>
<typeparam name="T">The type of value to copy.</typeparam>
</member>
<member name="M:System.Runtime.CompilerServices.Unsafe.CopyBlock(System.Byte@,System.Byte@,System.UInt32)">
<summary>Copies bytes from the source address to the destination address.</summary>
<param name="destination">The destination address to copy to.</param>
<param name="source">The source address to copy from.</param>
<param name="byteCount">The number of bytes to copy.</param>
</member>
<member name="M:System.Runtime.CompilerServices.Unsafe.CopyBlock(System.Void*,System.Void*,System.UInt32)">
<summary>Copies bytes from the source address to the destination address.</summary>
<param name="destination">The destination address to copy to.</param>
<param name="source">The source address to copy from.</param>
<param name="byteCount">The number of bytes to copy.</param>
</member>
<member name="M:System.Runtime.CompilerServices.Unsafe.CopyBlockUnaligned(System.Byte@,System.Byte@,System.UInt32)">
<summary>Copies bytes from the source address to the destination address without assuming architecture dependent alignment of the addresses.</summary>
<param name="destination">The destination address to copy to.</param>
<param name="source">The source address to copy from.</param>
<param name="byteCount">The number of bytes to copy.</param>
</member>
<member name="M:System.Runtime.CompilerServices.Unsafe.CopyBlockUnaligned(System.Void*,System.Void*,System.UInt32)">
<summary>Copies bytes from the source address to the destination address without assuming architecture dependent alignment of the addresses.</summary>
<param name="destination">The destination address to copy to.</param>
<param name="source">The source address to copy from.</param>
<param name="byteCount">The number of bytes to copy.</param>
</member>
<member name="M:System.Runtime.CompilerServices.Unsafe.InitBlock(System.Byte@,System.Byte,System.UInt32)">
<summary>Initializes a block of memory at the given location with a given initial value.</summary>
<param name="startAddress">The address of the start of the memory block to initialize.</param>
<param name="value">The value to initialize the block to.</param>
<param name="byteCount">The number of bytes to initialize.</param>
</member>
<member name="M:System.Runtime.CompilerServices.Unsafe.InitBlock(System.Void*,System.Byte,System.UInt32)">
<summary>Initializes a block of memory at the given location with a given initial value.</summary>
<param name="startAddress">The address of the start of the memory block to initialize.</param>
<param name="value">The value to initialize the block to.</param>
<param name="byteCount">The number of bytes to initialize.</param>
</member>
<member name="M:System.Runtime.CompilerServices.Unsafe.InitBlockUnaligned(System.Byte@,System.Byte,System.UInt32)">
<summary>Initializes a block of memory at the given location with a given initial value without assuming architecture dependent alignment of the address.</summary>
<param name="startAddress">The address of the start of the memory block to initialize.</param>
<param name="value">The value to initialize the block to.</param>
<param name="byteCount">The number of bytes to initialize.</param>
</member>
<member name="M:System.Runtime.CompilerServices.Unsafe.InitBlockUnaligned(System.Void*,System.Byte,System.UInt32)">
<summary>Initializes a block of memory at the given location with a given initial value without assuming architecture dependent alignment of the address.</summary>
<param name="startAddress">The address of the start of the memory block to initialize.</param>
<param name="value">The value to initialize the block to.</param>
<param name="byteCount">The number of bytes to initialize.</param>
</member>
<member name="M:System.Runtime.CompilerServices.Unsafe.IsAddressGreaterThan``1(``0@,``0@)">
<summary>Returns a value that indicates whether a specified reference is greater than another specified reference.</summary>
<param name="left">The first value to compare.</param>
<param name="right">The second value to compare.</param>
<typeparam name="T">The type of the reference.</typeparam>
<returns>
<see langword="true" /> if <paramref name="left" /> is greater than <paramref name="right" />; otherwise, <see langword="false" />.</returns>
</member>
<member name="M:System.Runtime.CompilerServices.Unsafe.IsAddressLessThan``1(``0@,``0@)">
<summary>Returns a value that indicates whether a specified reference is less than another specified reference.</summary>
<param name="left">The first value to compare.</param>
<param name="right">The second value to compare.</param>
<typeparam name="T">The type of the reference.</typeparam>
<returns>
<see langword="true" /> if <paramref name="left" /> is less than <paramref name="right" />; otherwise, <see langword="false" />.</returns>
</member>
<member name="M:System.Runtime.CompilerServices.Unsafe.IsNullRef``1(``0@)">
<summary>Determines if a given reference to a value of type <typeparamref name="T" /> is a null reference.</summary>
<param name="source">The reference to check.</param>
<typeparam name="T">The type of the reference.</typeparam>
<returns>
<see langword="true" /> if <paramref name="source" /> is a null reference; otherwise, <see langword="false" />.</returns>
</member>
<member name="M:System.Runtime.CompilerServices.Unsafe.NullRef``1">
<summary>Returns a reference to a value of type <typeparamref name="T" /> that is a null reference.</summary>
<typeparam name="T">The type of the reference.</typeparam>
<returns>A reference to a value of type <typeparamref name="T" /> that is a null reference.</returns>
</member>
<member name="M:System.Runtime.CompilerServices.Unsafe.Read``1(System.Void*)">
<summary>Reads a value of type <typeparamref name="T" /> from the given location.</summary>
<param name="source">The location to read from.</param>
<typeparam name="T">The type to read.</typeparam>
<returns>An object of type <typeparamref name="T" /> read from the given location.</returns>
</member>
<member name="M:System.Runtime.CompilerServices.Unsafe.ReadUnaligned``1(System.Byte@)">
<summary>Reads a value of type <typeparamref name="T" /> from the given location without assuming architecture dependent alignment of the addresses.</summary>
<param name="source">The location to read from.</param>
<typeparam name="T">The type to read.</typeparam>
<returns>An object of type <typeparamref name="T" /> read from the given location.</returns>
</member>
<member name="M:System.Runtime.CompilerServices.Unsafe.ReadUnaligned``1(System.Void*)">
<summary>Reads a value of type <typeparamref name="T" /> from the given location without assuming architecture dependent alignment of the addresses.</summary>
<param name="source">The location to read from.</param>
<typeparam name="T">The type to read.</typeparam>
<returns>An object of type <typeparamref name="T" /> read from the given location.</returns>
</member>
<member name="M:System.Runtime.CompilerServices.Unsafe.SizeOf``1">
<summary>Returns the size of an object of the given type parameter.</summary>
<typeparam name="T">The type of object whose size is retrieved.</typeparam>
<returns>The size of an object of type <typeparamref name="T" />.</returns>
</member>
<member name="M:System.Runtime.CompilerServices.Unsafe.SkipInit``1(``0@)">
<summary>Bypasses definite assignment rules for a given value.</summary>
<param name="value">The uninitialized object.</param>
<typeparam name="T">The type of the uninitialized object.</typeparam>
</member>
<member name="M:System.Runtime.CompilerServices.Unsafe.Subtract``1(``0@,System.Int32)">
<summary>Subtracts an element offset from the given reference.</summary>
<param name="source">The reference to subtract the offset from.</param>
<param name="elementOffset">The offset to subtract.</param>
<typeparam name="T">The type of reference.</typeparam>
<returns>A new reference that reflects the subtraction of offset from pointer.</returns>
</member>
<member name="M:System.Runtime.CompilerServices.Unsafe.Subtract``1(``0@,System.IntPtr)">
<summary>Subtracts an element offset from the given reference.</summary>
<param name="source">The reference to subtract the offset from.</param>
<param name="elementOffset">The offset to subtract.</param>
<typeparam name="T">The type of reference.</typeparam>
<returns>A new reference that reflects the subtraction of offset from pointer.</returns>
</member>
<member name="M:System.Runtime.CompilerServices.Unsafe.Subtract``1(``0@,System.UIntPtr)">
<summary>Subtracts an element offset from the given reference.</summary>
<param name="source">The reference to subtract the offset from.</param>
<param name="elementOffset">The offset to subtract.</param>
<typeparam name="T">The type of reference.</typeparam>
<returns>A new reference that reflects the subraction of offset from pointer.</returns>
</member>
<member name="M:System.Runtime.CompilerServices.Unsafe.Subtract``1(System.Void*,System.Int32)">
<summary>Subtracts an element offset from the given void pointer.</summary>
<param name="source">The void pointer to subtract the offset from.</param>
<param name="elementOffset">The offset to subtract.</param>
<typeparam name="T">The type of the void pointer.</typeparam>
<returns>A new void pointer that reflects the subtraction of offset from the specified pointer.</returns>
</member>
<member name="M:System.Runtime.CompilerServices.Unsafe.SubtractByteOffset``1(``0@,System.IntPtr)">
<summary>Subtracts a byte offset from the given reference.</summary>
<param name="source">The reference to subtract the offset from.</param>
<param name="byteOffset">The offset to subtract.</param>
<typeparam name="T">The type of reference.</typeparam>
<returns>A new reference that reflects the subtraction of byte offset from pointer.</returns>
</member>
<member name="M:System.Runtime.CompilerServices.Unsafe.SubtractByteOffset``1(``0@,System.UIntPtr)">
<summary>Subtracts a byte offset from the given reference.</summary>
<param name="source">The reference to subtract the offset from.</param>
<param name="byteOffset">The offset to subtract.</param>
<typeparam name="T">The type of reference.</typeparam>
<returns>A new reference that reflects the subraction of byte offset from pointer.</returns>
</member>
<member name="M:System.Runtime.CompilerServices.Unsafe.Unbox``1(System.Object)">
<summary>Returns a <see langword="mutable ref" /> to a boxed value.</summary>
<param name="box">The value to unbox.</param>
<typeparam name="T">The type to be unboxed.</typeparam>
<exception cref="T:System.NullReferenceException">
<paramref name="box" /> is <see langword="null" />, and <typeparamref name="T" /> is a non-nullable value type.</exception>
<exception cref="T:System.InvalidCastException">
<paramref name="box" /> is not a boxed value type.
-or-
<paramref name="box" /> is not a boxed <typeparamref name="T" />.</exception>
<exception cref="T:System.TypeLoadException">
<typeparamref name="T" /> cannot be found.</exception>
<returns>A <see langword="mutable ref" /> to the boxed value <paramref name="box" />.</returns>
</member>
<member name="M:System.Runtime.CompilerServices.Unsafe.Write``1(System.Void*,``0)">
<summary>Writes a value of type <typeparamref name="T" /> to the given location.</summary>
<param name="destination">The location to write to.</param>
<param name="value">The value to write.</param>
<typeparam name="T">The type of value to write.</typeparam>
</member>
<member name="M:System.Runtime.CompilerServices.Unsafe.WriteUnaligned``1(System.Byte@,``0)">
<summary>Writes a value of type <typeparamref name="T" /> to the given location without assuming architecture dependent alignment of the addresses.</summary>
<param name="destination">The location to write to.</param>
<param name="value">The value to write.</param>
<typeparam name="T">The type of value to write.</typeparam>
</member>
<member name="M:System.Runtime.CompilerServices.Unsafe.WriteUnaligned``1(System.Void*,``0)">
<summary>Writes a value of type <typeparamref name="T" /> to the given location without assuming architecture dependent alignment of the addresses.</summary>
<param name="destination">The location to write to.</param>
<param name="value">The value to write.</param>
<typeparam name="T">The type of value to write.</typeparam>
</member>
</members>
</doc>

View File

@@ -0,0 +1,166 @@
<?xml version="1.0" encoding="utf-8"?><doc>
<assembly>
<name>System.Threading.Tasks.Extensions</name>
</assembly>
<members>
<member name="T:System.Runtime.CompilerServices.ValueTaskAwaiter`1">
<typeparam name="TResult"></typeparam>
</member>
<member name="M:System.Runtime.CompilerServices.ValueTaskAwaiter`1.GetResult">
<returns></returns>
</member>
<member name="P:System.Runtime.CompilerServices.ValueTaskAwaiter`1.IsCompleted">
<returns></returns>
</member>
<member name="M:System.Runtime.CompilerServices.ValueTaskAwaiter`1.OnCompleted(System.Action)">
<param name="continuation"></param>
</member>
<member name="M:System.Runtime.CompilerServices.ValueTaskAwaiter`1.UnsafeOnCompleted(System.Action)">
<param name="continuation"></param>
</member>
<member name="T:System.Threading.Tasks.ValueTask`1">
<summary>Provides a value type that wraps a <see cref="Task{TResult}"></see> and a <typeparamref name="TResult">TResult</typeparamref>, only one of which is used.</summary>
<typeparam name="TResult">The result.</typeparam>
</member>
<member name="M:System.Threading.Tasks.ValueTask`1.#ctor(System.Threading.Tasks.Task{`0})">
<summary>Initializes a new instance of the <see cref="ValueTask{TResult}"></see> class using the supplied task that represents the operation.</summary>
<param name="task">The task.</param>
<exception cref="T:System.ArgumentNullException">The <paramref name="task">task</paramref> argument is null.</exception>
</member>
<member name="M:System.Threading.Tasks.ValueTask`1.#ctor(`0)">
<summary>Initializes a new instance of the <see cref="ValueTask{TResult}"></see> class using the supplied result of a successful operation.</summary>
<param name="result">The result.</param>
</member>
<member name="M:System.Threading.Tasks.ValueTask`1.AsTask">
<summary>Retrieves a <see cref="Task{TResult}"></see> object that represents this <see cref="ValueTask{TResult}"></see>.</summary>
<returns>The <see cref="Task{TResult}"></see> object that is wrapped in this <see cref="ValueTask{TResult}"></see> if one exists, or a new <see cref="Task{TResult}"></see> object that represents the result.</returns>
</member>
<member name="M:System.Threading.Tasks.ValueTask`1.ConfigureAwait(System.Boolean)">
<summary>Configures an awaiter for this value.</summary>
<param name="continueOnCapturedContext">true to attempt to marshal the continuation back to the captured context; otherwise, false.</param>
<returns>The configured awaiter.</returns>
</member>
<member name="M:System.Threading.Tasks.ValueTask`1.CreateAsyncMethodBuilder">
<summary>Creates a method builder for use with an async method.</summary>
<returns>The created builder.</returns>
</member>
<member name="M:System.Threading.Tasks.ValueTask`1.Equals(System.Object)">
<summary>Determines whether the specified object is equal to the current object.</summary>
<param name="obj">The object to compare with the current object.</param>
<returns>true if the specified object is equal to the current object; otherwise, false.</returns>
</member>
<member name="M:System.Threading.Tasks.ValueTask`1.Equals(System.Threading.Tasks.ValueTask{`0})">
<summary>Determines whether the specified <see cref="ValueTask{TResult}"></see> object is equal to the current <see cref="ValueTask{TResult}"></see> object.</summary>
<param name="other">The object to compare with the current object.</param>
<returns>true if the specified object is equal to the current object; otherwise, false.</returns>
</member>
<member name="M:System.Threading.Tasks.ValueTask`1.GetAwaiter">
<summary>Creates an awaiter for this value.</summary>
<returns>The awaiter.</returns>
</member>
<member name="M:System.Threading.Tasks.ValueTask`1.GetHashCode">
<summary>Returns the hash code for this instance.</summary>
<returns>The hash code for the current object.</returns>
</member>
<member name="P:System.Threading.Tasks.ValueTask`1.IsCanceled">
<summary>Gets a value that indicates whether this object represents a canceled operation.</summary>
<returns>true if this object represents a canceled operation; otherwise, false.</returns>
</member>
<member name="P:System.Threading.Tasks.ValueTask`1.IsCompleted">
<summary>Gets a value that indicates whether this object represents a completed operation.</summary>
<returns>true if this object represents a completed operation; otherwise, false.</returns>
</member>
<member name="P:System.Threading.Tasks.ValueTask`1.IsCompletedSuccessfully">
<summary>Gets a value that indicates whether this object represents a successfully completed operation.</summary>
<returns>true if this object represents a successfully completed operation; otherwise, false.</returns>
</member>
<member name="P:System.Threading.Tasks.ValueTask`1.IsFaulted">
<summary>Gets a value that indicates whether this object represents a failed operation.</summary>
<returns>true if this object represents a failed operation; otherwise, false.</returns>
</member>
<member name="M:System.Threading.Tasks.ValueTask`1.op_Equality(System.Threading.Tasks.ValueTask{`0},System.Threading.Tasks.ValueTask{`0})">
<summary>Compares two values for equality.</summary>
<param name="left">The first value to compare.</param>
<param name="right">The second value to compare.</param>
<returns>true if the two <see cref="ValueTask{TResult}"></see> values are equal; otherwise, false.</returns>
</member>
<member name="M:System.Threading.Tasks.ValueTask`1.op_Inequality(System.Threading.Tasks.ValueTask{`0},System.Threading.Tasks.ValueTask{`0})">
<summary>Determines whether two <see cref="ValueTask{TResult}"></see> values are unequal.</summary>
<param name="left">The first value to compare.</param>
<param name="right">The seconed value to compare.</param>
<returns>true if the two <see cref="ValueTask{TResult}"></see> values are not equal; otherwise, false.</returns>
</member>
<member name="P:System.Threading.Tasks.ValueTask`1.Result">
<summary>Gets the result.</summary>
<returns>The result.</returns>
</member>
<member name="M:System.Threading.Tasks.ValueTask`1.ToString">
<summary>Returns a string that represents the current object.</summary>
<returns>A string that represents the current object.</returns>
</member>
<member name="T:System.Runtime.CompilerServices.AsyncMethodBuilderAttribute">
</member>
<member name="M:System.Runtime.CompilerServices.AsyncMethodBuilderAttribute.#ctor(System.Type)">
<param name="builderType"></param>
</member>
<member name="P:System.Runtime.CompilerServices.AsyncMethodBuilderAttribute.BuilderType">
<returns></returns>
</member>
<member name="T:System.Runtime.CompilerServices.AsyncValueTaskMethodBuilder`1">
<typeparam name="TResult"></typeparam>
</member>
<member name="M:System.Runtime.CompilerServices.AsyncValueTaskMethodBuilder`1.AwaitOnCompleted``2(``0@,``1@)">
<param name="awaiter"></param>
<param name="stateMachine"></param>
<typeparam name="TAwaiter"></typeparam>
<typeparam name="TStateMachine"></typeparam>
</member>
<member name="M:System.Runtime.CompilerServices.AsyncValueTaskMethodBuilder`1.AwaitUnsafeOnCompleted``2(``0@,``1@)">
<param name="awaiter"></param>
<param name="stateMachine"></param>
<typeparam name="TAwaiter"></typeparam>
<typeparam name="TStateMachine"></typeparam>
</member>
<member name="M:System.Runtime.CompilerServices.AsyncValueTaskMethodBuilder`1.Create">
<returns></returns>
</member>
<member name="M:System.Runtime.CompilerServices.AsyncValueTaskMethodBuilder`1.SetException(System.Exception)">
<param name="exception"></param>
</member>
<member name="M:System.Runtime.CompilerServices.AsyncValueTaskMethodBuilder`1.SetResult(`0)">
<param name="result"></param>
</member>
<member name="M:System.Runtime.CompilerServices.AsyncValueTaskMethodBuilder`1.SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)">
<param name="stateMachine"></param>
</member>
<member name="M:System.Runtime.CompilerServices.AsyncValueTaskMethodBuilder`1.Start``1(``0@)">
<param name="stateMachine"></param>
<typeparam name="TStateMachine"></typeparam>
</member>
<member name="P:System.Runtime.CompilerServices.AsyncValueTaskMethodBuilder`1.Task">
<returns></returns>
</member>
<member name="T:System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable`1.ConfiguredValueTaskAwaiter">
<typeparam name="TResult"></typeparam>
</member>
<member name="M:System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable`1.ConfiguredValueTaskAwaiter.GetResult">
<returns></returns>
</member>
<member name="P:System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable`1.ConfiguredValueTaskAwaiter.IsCompleted">
<returns></returns>
</member>
<member name="M:System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable`1.ConfiguredValueTaskAwaiter.OnCompleted(System.Action)">
<param name="continuation"></param>
</member>
<member name="M:System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable`1.ConfiguredValueTaskAwaiter.UnsafeOnCompleted(System.Action)">
<param name="continuation"></param>
</member>
<member name="T:System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable`1">
<typeparam name="TResult"></typeparam>
</member>
<member name="M:System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable`1.GetAwaiter">
<returns></returns>
</member>
</members>
</doc>

View File

@@ -0,0 +1,8 @@
<?xml version="1.0"?>
<doc>
<assembly>
<name>System.ValueTuple</name>
</assembly>
<members>
</members>
</doc>

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,63 @@
Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 16
VisualStudioVersion = 16.0.30002.166
MinimumVisualStudioVersion = 10.0.40219.1
Project("{E24C65DC-7377-472B-9ABA-BC803B73C61A}") = "MES_Manage", ".", "{4F66CC1F-BFDE-4EEA-B800-7CF049E5176A}"
ProjectSection(WebsiteProperties) = preProject
TargetFrameworkMoniker = ".NETFramework,Version%3Dv4.0"
ProjectReferences = "{97127b87-d43d-457c-9894-5f2244e4d2e7}|DataLinkMesWork.dll;{d7e149c7-a7e2-41c7-a3d3-af5d2efc9af8}|WriteExcelNPOI.dll;"
Debug.AspNetCompiler.VirtualPath = "/localhost_57966"
Debug.AspNetCompiler.PhysicalPath = "..\MES_Manage\"
Debug.AspNetCompiler.TargetPath = "PrecompiledWeb\localhost_57966\"
Debug.AspNetCompiler.Updateable = "true"
Debug.AspNetCompiler.ForceOverwrite = "true"
Debug.AspNetCompiler.FixedNames = "false"
Debug.AspNetCompiler.Debug = "True"
Release.AspNetCompiler.VirtualPath = "/localhost_57966"
Release.AspNetCompiler.PhysicalPath = "..\MES_Manage\"
Release.AspNetCompiler.TargetPath = "PrecompiledWeb\localhost_57966\"
Release.AspNetCompiler.Updateable = "true"
Release.AspNetCompiler.ForceOverwrite = "true"
Release.AspNetCompiler.FixedNames = "false"
Release.AspNetCompiler.Debug = "False"
VWDPort = "57966"
SlnRelativePath = "..\MES_Manage\"
EndProjectSection
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "03.WriteExcelNPOI", "..\03.WriteExcelNPOI\03.WriteExcelNPOI.csproj", "{D7E149C7-A7E2-41C7-A3D3-AF5D2EFC9AF8}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "02DataLinkMesWork", "..\02DataLinkMesWork\02DataLinkMesWork.csproj", "{97127B87-D43D-457C-9894-5F2244E4D2E7}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "07_WinformApiApp", "..\WinformApiApp\07_WinformApiApp.csproj", "{802E9943-6998-4BBF-B901-FF79FFB53584}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Release|Any CPU = Release|Any CPU
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{4F66CC1F-BFDE-4EEA-B800-7CF049E5176A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{4F66CC1F-BFDE-4EEA-B800-7CF049E5176A}.Debug|Any CPU.Build.0 = Debug|Any CPU
{4F66CC1F-BFDE-4EEA-B800-7CF049E5176A}.Release|Any CPU.ActiveCfg = Debug|Any CPU
{4F66CC1F-BFDE-4EEA-B800-7CF049E5176A}.Release|Any CPU.Build.0 = Debug|Any CPU
{D7E149C7-A7E2-41C7-A3D3-AF5D2EFC9AF8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{D7E149C7-A7E2-41C7-A3D3-AF5D2EFC9AF8}.Debug|Any CPU.Build.0 = Debug|Any CPU
{D7E149C7-A7E2-41C7-A3D3-AF5D2EFC9AF8}.Release|Any CPU.ActiveCfg = Release|Any CPU
{D7E149C7-A7E2-41C7-A3D3-AF5D2EFC9AF8}.Release|Any CPU.Build.0 = Release|Any CPU
{97127B87-D43D-457C-9894-5F2244E4D2E7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{97127B87-D43D-457C-9894-5F2244E4D2E7}.Debug|Any CPU.Build.0 = Debug|Any CPU
{97127B87-D43D-457C-9894-5F2244E4D2E7}.Release|Any CPU.ActiveCfg = Release|Any CPU
{97127B87-D43D-457C-9894-5F2244E4D2E7}.Release|Any CPU.Build.0 = Release|Any CPU
{802E9943-6998-4BBF-B901-FF79FFB53584}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{802E9943-6998-4BBF-B901-FF79FFB53584}.Debug|Any CPU.Build.0 = Debug|Any CPU
{802E9943-6998-4BBF-B901-FF79FFB53584}.Release|Any CPU.ActiveCfg = Release|Any CPU
{802E9943-6998-4BBF-B901-FF79FFB53584}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {1F054BAF-3BFA-42C6-BF56-4717FA1418A2}
EndGlobalSection
EndGlobal

View File

@@ -0,0 +1,43 @@
# MES 测试后端部署快照
## 来源
- 服务器:`124.220.15.242`Windows Server 2019 Datacenter
- IIS 站点:`元利流体MES_Manage`
- 远端物理目录:`C:\ProjectShow\元利流体\MES_ManageV20250916`
- IIS 绑定HTTPS `10100``10101`
- 应用池:`元利流体MES_Manage`
- 快照日期2026-07-25
## 快照范围
- `submit`32 个内联 C# `.ashx` 处理器及目录级配置。
- `Bin`部署程序集、PDB 和程序集配置。
- `JS``projectUse`:后端随附脚本和项目资源。
- `packages`:部署目录内保留的 NuGet 依赖包。
- 解决方案、发布项目和 `packages.config`
- `manifest-sha256.csv`:本地快照文件的 SHA-256、大小和时间清单。
## 明确排除
- 根目录原始 `Web.config`:包含数据库账号、密码和连接串,未复制到仓库。
- `webpage``PDF``pic``App_Data`:可能包含业务文件或运行数据。
- `.vs``aspnet_client`:与接管源码和部署基线无关。
## 配置摘要
- 实际连接目标:`124.220.15.242,64722`
- 实际业务数据库:`YL_MESDB`
- 连接串包含 SQL 账号和密码,但本快照不保存其值。
- 配置中仍存在旧字段 `DataSource=.\MSSQLSERVER2016``Database=MESBasicDB_PZ126`;实际接口使用 `ConnectionString` 指向上述测试库。
- ASP.NET 目标框架:`.NET Framework 4.0`
## 代码形态
该目录是可运行部署目录,不是完整的标准源码仓库。请求入口以 `.ashx` 内联源码存在,核心数据库执行逻辑位于 `DataLinkMesWork.dll` 等程序集。服务器没有独立 `.cs` 项目源码文件;`decompiled/DataLinkMesWork` 提供了可编译的非权威恢复源码,但生产级修改仍应获取原始后端源码仓库。
## 安全注意事项
- `submit/web.config` 启用了目录浏览,需评估关闭。
- 不得将服务器根 `Web.config`、数据库密码或管理员密码加入本目录。
- 生产发布前应使用受限服务账号和密钥管理,不继续依赖明文配置。

View File

@@ -0,0 +1,18 @@
# 脱敏配置摘要
| 配置项 | 值 |
| --- | --- |
| IIS 站点 | `元利流体MES_Manage` |
| 物理目录 | `C:\ProjectShow\元利流体\MES_ManageV20250916` |
| HTTPS 端口 | `10100`, `10101` |
| 应用池 | `元利流体MES_Manage` |
| 数据源 | `124.220.15.242,64722` |
| 数据库 | `YL_MESDB` |
| SQL 用户 | `[已配置,未保存]` |
| SQL 密码 | `[已配置,未保存]` |
| Encrypt | `False` |
| MaxPoolSize | `1000` |
| 旧数据源字段 | `.\MSSQLSERVER2016` |
| 旧数据库字段 | `MESBasicDB_PZ126` |
原始 `Web.config` 仅保留在测试服务器部署目录中。本文件不能作为可部署配置使用。

View File

@@ -0,0 +1,6 @@
internal class ContentResult
{
public object Content { get; set; }
public string ContentType { get; set; }
}

View File

@@ -0,0 +1,59 @@
using System.CodeDom.Compiler;
using System.ComponentModel;
using System.Diagnostics;
using System.Globalization;
using System.Resources;
using System.Runtime.CompilerServices;
namespace DataLinkMesWork.Properties;
/// <summary>
/// 一个强类型的资源类,用于查找本地化的字符串等。
/// </summary>
[GeneratedCode("System.Resources.Tools.StronglyTypedResourceBuilder", "17.0.0.0")]
[DebuggerNonUserCode]
[CompilerGenerated]
internal class Resources
{
private static ResourceManager resourceMan;
private static CultureInfo resourceCulture;
/// <summary>
/// 返回此类使用的缓存的 ResourceManager 实例。
/// </summary>
[EditorBrowsable(EditorBrowsableState.Advanced)]
internal static ResourceManager ResourceManager
{
get
{
if (resourceMan == null)
{
ResourceManager temp = new ResourceManager("DataLinkMesWork.Properties.Resources", typeof(Resources).Assembly);
resourceMan = temp;
}
return resourceMan;
}
}
/// <summary>
/// 重写当前线程的 CurrentUICulture 属性,对
/// 使用此强类型资源类的所有资源查找执行重写。
/// </summary>
[EditorBrowsable(EditorBrowsableState.Advanced)]
internal static CultureInfo Culture
{
get
{
return resourceCulture;
}
set
{
resourceCulture = value;
}
}
internal Resources()
{
}
}

View File

@@ -0,0 +1,493 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype"><value>text/microsoft-resx</value></resheader><resheader name="version"><value>1.3</value></resheader><resheader name="reader"><value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value></resheader><resheader name="writer"><value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value></resheader><data name="$this.Icon" mimetype="application/x-microsoft.net.object.binary.base64"><value>AAEAAAD/////AQAAAAAAAAAMAgAAAFFTeXN0ZW0uRHJhd2luZywgVmVyc2lvbj00LjAuMC4wLCBD
dWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWIwM2Y1ZjdmMTFkNTBhM2EFAQAAABNTeXN0
ZW0uRHJhd2luZy5JY29uAgAAAAhJY29uRGF0YQhJY29uU2l6ZQcEAhNTeXN0ZW0uRHJhd2luZy5T
aXplAgAAAAIAAAAJAwAAAAX8////E1N5c3RlbS5EcmF3aW5nLlNpemUCAAAABXdpZHRoBmhlaWdo
dAAACAgCAAAAAAAAAAAAAAAPAwAAAL4QAAACAAABAAEAICAAAAEAIACoEAAAFgAAACgAAAAgAAAA
QAAAAAEAIAAAAAAAABAAABMLAAATCwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAMgChADIAoQIyAKEgMgChczIAoccyAKHqMgChmTIAoTwyAKEJMgChAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAMgChADIAoQQyAKEvMgChdzIAodYyAKH7MgCh/zIAof8yAKH/
MgCh6jIAoacyAKFJMgChEjIAoQAyAKEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAyAKEAMgChADIAoQoyAKE+MgChkTIAoeoyAKH+MgCh+TIA
oe0yAKH+MgCh/zIAofwyAKH3MgCh/jIAofgyAKHBMgChZDIAoR4yAKEBMgChAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAyAKEAMgChATIAoRUyAKFcMgChujIAofEyAKH/
MgCh9DIAobcyAKFPMgChfjIAof8yAKH/MgCh5TIAoVUyAKGLMgCh4jIAofwyAKH9MgCh2TIAoYcy
AKEoMgChBTIAoQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAyAKEAMgChAjIAoSYyAKF2MgCh0DIA
ofcyAKH+MgCh8zIAof8yAKGjMgChDTIAoQAyAKFpMgCh/zIAof8yAKHhMgChHjIAoQIyAKEiMgCh
bjIAocoyAKH3MgCh/jIAoeUyAKGfMgChQTIAoQsyAKEAAAAAAAAAAAAAAAAAMgChCDIAoUEyAKGX
MgCh4jIAof4yAKH/MgChzzIAoW0yAKFoMgCh+zIAoZcyAKEAMgChADIAoWkyAKH/MgCh/zIAoeEy
AKEeMgChADIAoQAyAKEBMgChETIAoVAyAKGiMgCh8DIAof8yAKH0MgChuTIAoW0yAKEVMgChADIA
oQAyAKG2MgCh7TIAof8yAKHvMgCh7jIAofgyAKFLMgChADIAoTcyAKH1MgChlzIAoQAyAKEAMgCh
aTIAof8yAKH/MgCh4TIAoR4yAKEAAAAAAAAAAAAAAAAAMgChADIAoQcyAKE4MgChijIAod8yAKH9
MgCh+zIAoc4yAKFdMgChADIAof8yAKHlMgChlDIAoToyAKGgMgCh7jIAoSwyAKEAMgChFzIAodgy
AKGZMgChADIAoQAyAKFpMgCh/zIAof8yAKHxMgChfDIAoSkyAKEBMgChAAAAAAAAAAAAAAAAADIA
oQAyAKECMgChITIAoW8yAKG/MgCh/zIAoZYyAKEAMgCh/zIAoZoyAKEBMgChADIAoZkyAKHSMgCh
EjIAoQAyAKEGMgChujIAoZoyAKEAMgChADIAoWkyAKH/MgCh/zIAof0yAKH+MgCh4TIAoZIyAKFE
MgChDjIAoQAyAKEAAAAAAAAAAAAAAAAAMgChADIAoUIyAKH7MgChlzIAoQAyAKH/MgChlzIAoQAy
AKEAMgChmjIAobMyAKEEMgChADIAoQAyAKGcMgChmzIAoQAyAKEAMgChaTIAof8yAKH/MgCh4zIA
oZYyAKHRMgCh+zIAofQyAKHDMgChZDIAoSIyAKEBMgChAAAAAAAyAKEAMgChPzIAofsyAKGXMgCh
ADIAof8yAKGXMgChADIAoQAyAKGaMgChiDIAoQAAAAAAMgChADIAoYgyAKGaMgChADIAoQAyAKFp
MgCh/zIAof8yAKHhMgChIDIAoRIyAKFeMgChqzIAoe0yAKH+MgCh3jIAoYYyAKEqMgChADIAoQAy
AKE/MgCh+zIAoZcyAKEAMgCh/zIAoZcyAKEAMgChADIAoZgyAKFtMgChAAAAAAAyAKEAMgChXDIA
oZQyAKEAMgChADIAoWkyAKH/MgCh/zIAoeEyAKEeMgChADIAoQAyAKEGMgChMDIAoX8yAKHTMgCh
+jIAoWkyAKEAMgChADIAoT8yAKH7MgChlzIAoQAyAKH/MgChlzIAoQAyAKEAMgChlTIAoWMyAKEA
AAAAADIAoQAyAKE2MgChhTIAoQAyAKEAMgChaTIAof8yAKH/MgCh4TIAoR4yAKEAAAAAAAAAAAAy
AKEAMgChATIAoRUyAKFYMgChQDIAoQAyAKEAMgChPzIAofsyAKGXMgChADIAof8yAKGXMgChADIA
oQAyAKGLMgChQTIAoQAyAKEFMgChADIAoSMyAKF4MgChADIAoQAyAKFpMgCh/zIAof8yAKHhMgCh
HjIAoQAAAAAAAAAAAAAAAAAAAAAAMgChADIAoQAyAKEBMgChADIAoQAyAKE/MgCh+zIAoZcyAKEA
MgCh/zIAoZcyAKEAMgChADIAoXcyAKEkMgChBzIAoUIyAKEBMgChFjIAoWUyAKEBMgChADIAoWky
AKH/MgCh/zIAoeEyAKEeMgChADIAoQAyAKE5MgChSTIAoQ8yAKEBMgChAAAAAAAAAAAAMgChADIA
oT8yAKH7MgChlzIAoQAyAKH/MgChlzIAoQAyAKECMgChWzIAoQ8yAKEVMgChhTIAoQoyAKEHMgCh
MzIAoQEyAKEAMgChaTIAof8yAKH/MgCh4TIAoR4yAKEAMgChADIAoWkyAKH1MgChyzIAoX8yAKE4
MgChBTIAoQAyAKEAMgChPzIAofsyAKGXMgChADIAof8yAKGXMgChADIAoQMyAKFZMgChCzIAoS4y
AKHDMgChGjIAoQAAAAAAAAAAADIAoQAyAKFpMgCh/zIAof8yAKHhMgChHjIAoQAyAKEAMgChLDIA
oaEyAKHkMgCh/DIAoe8yAKGrMgChUzIAoREyAKFBMgCh+zIAoZcyAKEAMgCh/zIAoZcyAKEAMgCh
BzIAoVAyAKEEMgChQTIAodoyAKEjMgChAAAAAAAAAAAAMgChADIAoWkyAKH/MgCh/zIAoeEyAKEe
MgChAAAAAAAyAKEAMgChBjIAoSAyAKFyMgChwjIAofMyAKH4MgCh0zIAobMyAKH9MgChljIAoQAy
AKH/MgChlzIAoQAyAKEBMgChBDIAoQAyAKFKMgCh7jIAoT0yAKEAAAAAADIAoQAyAKEAMgChbDIA
of8yAKH/MgCh4TIAoR8yAKEAAAAAAAAAAAAAAAAAMgChADIAoQEyAKELMgChRzIAoZYyAKHeMgCh
/TIAof8yAKGWMgChADIAof8yAKGXMgChAAAAAAAAAAAAMgChADIAoW0yAKH/MgChZDIAoQAyAKEE
MgChHDIAoWAyAKHPMgCh/zIAof8yAKH3MgChkTIAoS8yAKELMgChADIAoQAAAAAAAAAAAAAAAAAy
AKEAMgChATIAoSAyAKF2MgCh/zIAoZYyAKEAMgCh/zIAoZcyAKEAAAAAADIAoQAyAKEAMgChljIA
of8yAKGeMgChOTIAoZEyAKHcMgCh+TIAof8yAKH/MgCh/zIAof8yAKH+MgCh6jIAobgyAKFXMgCh
ITIAoQEyAKEAAAAAAAAAAAAAAAAAMgChADIAoT8yAKH7MgChlzIAoQAyAKH/MgChlzIAoQAAAAAA
MgChADIAoQwyAKG9MgCh/zIAofMyAKHyMgCh/jIAof8yAKH/MgCh/zIAofoyAKH3MgCh/jIAof8y
AKH/MgCh/zIAofsyAKHbMgChmzIAoUwyAKENMgChATIAoQAyAKEAMgChPzIAofsyAKGXMgChADIA
of8yAKGXMgChATIAoRkyAKFbMgChsTIAofAyAKH/MgCh/zIAof8yAKH/MgCh/DIAoeYyAKGxMgCh
VTIAoUIyAKGFMgCh1TIAofUyAKH/MgCh/zIAof8yAKH/MgCh9DIAocUyAKGDMgChMDIAoQYyAKE/
MgCh+zIAoZcyAKEAMgCh/zIAocEyAKGOMgCh2TIAofcyAKH/MgCh/zIAof8yAKH/MgCh7jIAobMy
AKFwMgChJjIAoQoyAKEAMgChADIAoQEyAKEXMgChTTIAoZsyAKHYMgCh/TIAof8yAKH/MgCh/zIA
of4yAKHqMgChszIAoZgyAKH+MgChljIAoQAyAKH/MgCh/zIAof8yAKH/MgCh/zIAof8yAKH0MgCh
yTIAoYEyAKE/MgChBzIAoQAAAAAAMgChADIAoSIyAKF2MgChQjIAoRIyAKEAMgChATIAoR4yAKFj
MgChrjIAoecyAKH9MgCh/zIAof8yAKH/MgCh/zIAof8yAKGWMgChADIAof8yAKH/MgCh/zIAofky
AKHWMgChmjIAoUIyAKERMgChATIAoQAyAKEGMgChFTIAoQMyAKEAMgChKDIAoZUyAKHHMgChxjIA
oXcyAKE3MgChBzIAoQAyAKEGMgChKTIAoXYyAKHDMgCh7jIAof4yAKH/MgCh/zIAoZYyAKEAMgCh
rjIAoeYyAKH+MgCh0zIAoVcyAKELMgChADIAoQAyAKEAMgChADIAoVUyAKHAMgChkjIAoVYyAKEU
MgChATIAoRYyAKFhMgChqzIAodUyAKGmMgChZTIAoR8yAKEDMgChBDIAoS0yAKGiMgCh9DIAofUy
AKHGMgChWTIAoQAyAKEGMgChKjIAoWsyAKHBMgCh3DIAocEyAKFwMgChJTIAoQYyAKEAMgChDDIA
oTgyAKF/MgChyjIAocMyAKGUMgChMzIAoQsyAKEEMgChJjIAoWUyAKG/MgCh0TIAoaYyAKGoMgCh
1TIAodYyAKGNMgChQTIAoRAyAKEAMgChAAAAAAAyAKEAMgChADIAoQ8yAKE8MgChkDIAoc8yAKHf
MgChpDIAoVIyAKEcMgChADIAoQEyAKETMgChRzIAoZ8yAKHGMgChvzIAoWQyAKEtMgChMzIAoY8y
AKHvMgCh5zIAoa8yAKFcMgChHDIAoQMyAKEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADIA
oQAyAKECMgChFTIAoVcyAKGaMgCh3DIAodEyAKGaMgChSDIAoQsyAKEAMgChATIAoSUyAKGGMgCh
6TIAofEyAKHhMgChtzIAoXAyAKErMgChBTIAoQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMgChADIAoQIyAKElMgChXTIAobgyAKHbMgChxTIAoYUy
AKFbMgChqzIAodEyAKHLMgChhDIAoTsyAKELMgChAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAyAKEAMgCh
CzIAoTcyAKGTMgCh0zIAofAyAKG2MgChWjIAoRcyAKEBMgChAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/+Af//+AB//8AAD/8AAAP8AIAA8AGDABARg+AQEYD4ER
GAPxMZgAcTOYADEzmDAxM5g8MTKIPzEgCDDxIAgwMSB4MAEgeDgBJHg+ATxAD8E8AAHxOAAAMQAA
AAEAAwABABwgAQBEBAEBwAABAEAAA+AAAA/4AAB//wAD///gD/8L</value></data><data name="pictureBox1.Image" mimetype="application/x-microsoft.net.object.binary.base64"><value>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
I8peZnsVvkuUvTLG570jD+4f6gnu9BvP38Ed7uQuZZ/vdsazM3HXCFtX2LjKzmjOj7DVym7p5xtn
cU6Uvcz2KnyXKHtljM97Rx7cP9QT3Ok3nr+b+4zgzHLMt7vCxkzcNcLWFTausjOa8yNstbJb2vm2
2ZwXZS+zvQrfJcpeGePz3pEH9w/1BHf6jeef4l4ZnFH2+W5R9mbirhG2rrBxlZ3RnB9hq5Xd0sZ3
HcGZUfYy26vwXaLslTE+7x15cP9QT3CnM559krtlcU75X75TD9szcdcIW1fYuMrOaM6PsFXW57+B
KHsln29exvi8d+TB/UM9wZ3OePZJ7pbFOd/O98ngjJm4a4StK2xcZWc050fYKuvz30CUvZLPNy/5
/nvvyIP7h3qKex3x3JPcLYtzvpFvks15M3HXCFtX2LjKzmjOj7BV1ue/gSh7JZ9vXvL9996RB/cP
9RT3OuK5J7lbFud8C99hJGfPxF0jbF1h4yo7ozk/wlYv+60yWtl7edcjnmthM5OzouyVfL55yfXP
e0ce3D/UU9zriOee5G5ZnLM6738Hd5iJu0bYusLGVXZGc36ErV72W2W0svfyrkc818JmJmdF2Sv5
fPOSw3f+iDz45vBD3OuI557kblmcsyLvfDf3mYm7Rti6wsZVdkZzfoStXvZbZbSy9/KuZzwbZS+T
s6LsZXVX4/uU8fwbXPo7HB3cszn8EPc64rknuVsW56zCez7J3WbirhG2rrBxlZ3RnB9hq5f9Flmt
UXtd4dkoe5mcFWUvq7sa36dM6uc//vGObA4/xL32eOZp7pfFOW/n/WbgjjNx1whbV9i4ys5ozo+w
1ct+i6zWqL2u8GwLm1mcE2Uvq7sa36f0G/KuP//xj3dkc7hRb8+99njmae6XxTlv5J1m474zcdcI
W1fYuMrOaM6PsNXLfous1qi9rvBsC5tZnBNlL6u7Gt+nh+2IjMYfWS3vd5WdCFv/iYQ3hxtl9NxN
fv9p7pfFOW/hPWbm7jNx1whbV9i4ys5ozo+w1cN2q6xe5m7e9Teeb2Ezi3Oi7GV1V+P79LAdkdH4
I6vl/a6yE2HrP5Hw5nCjjKa7ye8/zf2yOGd27n+3lj28w0zcNcLWWfPo86ucscczT3GvHrZbZfWy
d/O+ZzzbwmYW50TZy+quxvdpZTcqq/Mjq+UdI2xF2PqIRDeHG2U03U1+/2nul8U5M3Lnu7lPdCfP
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</value></data><data name="pictureBox1.InitialImage" mimetype="application/x-microsoft.net.object.binary.base64"><value>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
I8peZnsVvkuUvTLG570jD+4f6gnu9BvP38Ed7uQuZZ/vdsazM3HXCFtX2LjKzmjOj7DVym7p5xtn
cU6Uvcz2KnyXKHtljM97Rx7cP9QT3Ok3nr+b+4zgzHLMt7vCxkzcNcLWFTausjOa8yNstbJb2vm2
2ZwXZS+zvQrfJcpeGePz3pEH9w/1BHf6jeef4l4ZnFH2+W5R9mbirhG2rrBxlZ3RnB9hq5Xd0sZ3
HcGZUfYy26vwXaLslTE+7x15cP9QT3CnM559krtlcU75X75TD9szcdcIW1fYuMrOaM6PsFXW57+B
KHsln29exvi8d+TB/UM9wZ3OePZJ7pbFOd/O98ngjJm4a4StK2xcZWc050fYKuvz30CUvZLPNy/5
/nvvyIP7h3qKex3x3JPcLYtzvpFvks15M3HXCFtX2LjKzmjOj7BV1ue/gSh7JZ9vXvL9996RB/cP
9RT3OuK5J7lbFud8C99hJGfPxF0jbF1h4yo7ozk/wlYv+60yWtl7edcjnmthM5OzouyVfL55yfXP
e0ce3D/UU9zriOee5G5ZnLM6738Hd5iJu0bYusLGVXZGc36ErV72W2W0svfyrkc818JmJmdF2Sv5
fPOSw3f+iDz45vBD3OuI557kblmcsyLvfDf3mYm7Rti6wsZVdkZzfoStXvZbZbSy9/KuZzwbZS+T
s6LsZXVX4/uU8fwbXPo7HB3cszn8EPc64rknuVsW56zCez7J3WbirhG2rrBxlZ3RnB9hq5f9Flmt
UXtd4dkoe5mcFWUvq7sa36dM6uc//vGObA4/xL32eOZp7pfFOW/n/WbgjjNx1whbV9i4ys5ozo+w
1ct+i6zWqL2u8GwLm1mcE2Uvq7sa36f0G/KuP//xj3dkc7hRb8+99njmae6XxTlv5J1m474zcdcI
W1fYuMrOaM6PsNXLfous1qi9rvBsC5tZnBNlL6u7Gt+nh+2IjMYfWS3vd5WdCFv/iYQ3hxtl9NxN
fv9p7pfFOW/hPWbm7jNx1whbV9i4ys5ozo+w1cN2q6xe5m7e9Teeb2Ezi3Oi7GV1V+P79LAdkdH4
I6vl/a6yE2HrP5Hw5nCjjKa7ye8/zf2yOGd27n+3lj28w0zcNcLWWfPo86ucscczT3GvHrZbZfWy
d/O+ZzzbwmYW50TZy+quxvdpZTcqq/Mjq+UdI2xF2PqIRDeHG2U03U1+/2nul8U5M3Lnu7lPdCfP
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</value></data></root>

View File

@@ -0,0 +1,36 @@
<Project Sdk="Microsoft.NET.Sdk.WindowsDesktop">
<PropertyGroup>
<AssemblyName>DataLinkMesWork</AssemblyName>
<GenerateAssemblyInfo>False</GenerateAssemblyInfo>
<UseWindowsForms>True</UseWindowsForms>
<TargetFramework>net48</TargetFramework>
<GenerateResourceUsePreserializedResources>true</GenerateResourceUsePreserializedResources>
</PropertyGroup>
<PropertyGroup>
<LangVersion>12.0</LangVersion>
<AllowUnsafeBlocks>True</AllowUnsafeBlocks>
</PropertyGroup>
<PropertyGroup>
<RootNamespace />
</PropertyGroup>
<ItemGroup />
<ItemGroup>
<PackageReference Include="System.Resources.Extensions" Version="8.0.0" />
</ItemGroup>
<ItemGroup>
<Reference Include="System.Runtime.Serialization" />
<Reference Include="System.Web.Extensions" />
<Reference Include="System.Data" />
<Reference Include="BasicData">
<HintPath>..\..\Bin\BasicData.dll</HintPath>
</Reference>
<Reference Include="System.Management" />
<Reference Include="System.Configuration" />
<Reference Include="JWT">
<HintPath>..\..\Bin\JWT.dll</HintPath>
</Reference>
<Reference Include="Newtonsoft.Json">
<HintPath>..\..\Bin\Newtonsoft.Json.dll</HintPath>
</Reference>
</ItemGroup>
</Project>

View File

@@ -0,0 +1,90 @@
using System;
using System.Security.Cryptography;
using System.Text;
namespace DataLinkMesWork;
public class AesKeyIvGenerator
{
private const int KeySize = 32;
private const int IvSize = 16;
public static string GenerateKey()
{
using RNGCryptoServiceProvider rng = new RNGCryptoServiceProvider();
byte[] key = new byte[32];
rng.GetBytes(key);
return ToHexString(key);
}
public static string GenerateIV()
{
using RNGCryptoServiceProvider rng = new RNGCryptoServiceProvider();
byte[] iv = new byte[16];
rng.GetBytes(iv);
return ToHexString(iv);
}
public static string ToHexString(byte[] bytes)
{
return BitConverter.ToString(bytes).Replace("-", string.Empty);
}
/// <summary>
/// 解密
/// </summary>
/// <param name="input"></param>
/// <param name="key"></param>
/// <param name="iv"></param>
/// <returns></returns>
public static string Decrypt(string input, string key, string iv)
{
byte[] keyArray = Encoding.UTF8.GetBytes(key);
byte[] ivArray = Encoding.UTF8.GetBytes(iv);
byte[] toDecryptArray = Convert.FromBase64String(input);
RijndaelManaged rDel = new RijndaelManaged();
rDel.Key = keyArray;
rDel.IV = ivArray;
rDel.Mode = CipherMode.ECB;
rDel.Padding = PaddingMode.PKCS7;
ICryptoTransform cTransform = rDel.CreateDecryptor();
byte[] resultArray = cTransform.TransformFinalBlock(toDecryptArray, 0, toDecryptArray.Length);
return Encoding.UTF8.GetString(resultArray);
}
/// <summary>
/// 加密
/// </summary>
/// <param name="input"></param>
/// <param name="key"></param>
/// <param name="iv"></param>
/// <returns></returns>
public static string Encrypt(string input, string key, string iv)
{
byte[] keyArray = Encoding.UTF8.GetBytes(key);
byte[] ivArray = Encoding.UTF8.GetBytes(iv);
byte[] toDecryptArray = Encoding.UTF8.GetBytes(input);
RijndaelManaged rDel = new RijndaelManaged();
rDel.Key = keyArray;
rDel.IV = ivArray;
rDel.Mode = CipherMode.ECB;
rDel.Padding = PaddingMode.PKCS7;
ICryptoTransform cTransform = rDel.CreateEncryptor();
byte[] resultArray = cTransform.TransformFinalBlock(toDecryptArray, 0, toDecryptArray.Length);
return Convert.ToBase64String(resultArray, 0, resultArray.Length);
}
public static string Md5Hash(string input)
{
using MD5 md5 = MD5.Create();
byte[] inputBytes = Encoding.ASCII.GetBytes(input);
byte[] hashBytes = md5.ComputeHash(inputBytes);
StringBuilder sb = new StringBuilder();
for (int i = 0; i < hashBytes.Length; i++)
{
sb.Append(hashBytes[i].ToString("X2"));
}
return sb.ToString().ToLower();
}
}

View File

@@ -0,0 +1,52 @@
using System;
namespace DataLinkMesWork;
internal struct ArrayMetadata
{
private Type element_type;
private bool is_array;
private bool is_list;
public Type ElementType
{
get
{
if (element_type == null)
{
return typeof(JsonData);
}
return element_type;
}
set
{
element_type = value;
}
}
public bool IsArray
{
get
{
return is_array;
}
set
{
is_array = value;
}
}
public bool IsList
{
get
{
return is_list;
}
set
{
is_list = value;
}
}
}

View File

@@ -0,0 +1,8 @@
namespace DataLinkMesWork;
public class CaptchaResponse
{
public string Id { get; set; }
public string Base64 { get; set; }
}

View File

@@ -0,0 +1,20 @@
namespace DataLinkMesWork;
public class Cmd
{
public string cmd;
public const string Insert = "Insert";
public const string Select = "Select";
public const string Select_check = "Select_check";
public const string Select_pages = "Select_pages";
public const string Select_pages_check = "Select_pages_check";
public const string Delete = "Delete";
public const string Update = "Update";
}

View File

@@ -0,0 +1,18 @@
using System.Collections.Generic;
using JWT;
using JWT.Algorithms;
using JWT.Serializers;
namespace DataLinkMesWork;
public class CommonToken
{
public static string CreateJwtToken(IDictionary<string, object> payload, string secret, IDictionary<string, object> extraHeaders = null)
{
IJwtAlgorithm algorithm = new HMACSHA256Algorithm();
IJsonSerializer serializer = new JsonNetSerializer();
IBase64UrlEncoder urlEncoder = new JwtBase64UrlEncoder();
IJwtEncoder encoder = new JwtEncoder(algorithm, serializer, urlEncoder);
return encoder.Encode(payload, secret);
}
}

View File

@@ -0,0 +1,10 @@
namespace DataLinkMesWork;
internal enum Condition
{
InArray,
InObject,
NotAProperty,
Property,
Value
}

View File

@@ -0,0 +1,906 @@
using System;
using System.Collections.Specialized;
using System.Data;
using System.Data.OleDb;
using System.Data.SqlClient;
using System.IO;
using System.Threading;
using SystemFramework;
namespace DataLinkMesWork;
/// <summary>
///
/// </summary>
public class DataAccess
{
/// <summary>
/// 测试与数据的连接线程
/// </summary>
private static Thread threadTestConnection;
/// <summary>
/// 更新Access数据
/// </summary>
/// <param name="sql"></param>
/// <param name="dt"></param>
/// <param name="oleDbParameter"></param>
/// <returns></returns>
public static bool ExecuteDataTable_OleDb_Update(string sql, DataTable dt, ref OleDbParameter[] oleDbParameter)
{
string errorMessage;
return SQLCommon.ExecuteDataTable_OleDb_Update(sql, ApplicationConfig.dbConnectionString_Access, dt, ref oleDbParameter, out errorMessage);
}
/// <summary>
/// 增加Access数据
/// </summary>
/// <param name="sql"></param>
/// <param name="filename"></param>
/// <param name="dt"></param>
/// <param name="oleDbParameter"></param>
/// <returns></returns>
public static bool ExecuteDataTable_OleDb_Insert_Access(string sql, string filename, DataTable dt, ref OleDbParameter[] oleDbParameter)
{
string connectionString = ConnectString_OleDb_Access(filename);
string errorMessage;
return SQLCommon.ExecuteDataTable_OleDb_Insert(sql, connectionString, dt, ref oleDbParameter, out errorMessage);
}
/// <summary>
/// 用于 Access
/// 执行标准SQL语句不要求返回结果适合增、删、改
/// </summary>
/// <param name="sql"></param>
/// <param name="filename">Excel Access文件</param>
/// <returns></returns>
public static bool ExecuteSQL_OleDb_Access(string filename, string sql)
{
string dbConnectionString_Access = ConnectString_OleDb_Access(filename);
string ErrorMessage;
return SQLCommon.ExecuteNonQuery_OleDb(sql, dbConnectionString_Access, out ErrorMessage);
}
/// <summary>
/// 用于 Excel Access
/// 执行标准SQL查询语句返回记录集
/// </summary>
/// <param name="sql"></param>
/// <param name="filename"></param>
/// <param name="dt"></param>
/// <returns></returns>
public static bool ExecuteDataTable_OleDb_Access(string sql, string filename, out DataTable dt)
{
string strConnectionstring = ConnectString_OleDb_Access(filename);
string ErrorMessage = "";
return SQLCommon.ExecuteDataTable_OleDb(sql, strConnectionstring, out dt, out ErrorMessage);
}
/// <summary>
///
/// </summary>
/// <param name="sql"></param>
/// <param name="strConnectionstring"></param>
/// <param name="dt"></param>
/// <returns></returns>
public static bool ExecuteDataTable_OleDb_Access_Connectionstring(string sql, string strConnectionstring, out DataTable dt)
{
string ErrorMessage = "";
return SQLCommon.ExecuteDataTable_OleDb(sql, strConnectionstring, out dt, out ErrorMessage);
}
/// <summary>
/// 根据Access文件名称获得Access连接字符串
/// </summary>
/// <param name="filename"></param>
/// <returns></returns>
public static string ConnectString_OleDb_Access(string filename)
{
return "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + filename;
}
/// <summary>
/// 用于 Access
/// 执行标准SQL语句不要求返回结果适合增、删、改
/// </summary>
/// <param name="sql"></param>
/// <param name="ConnectionString_Access"></param>
/// <returns></returns>
public static bool ExecuteSQL_OleDb_Access_ConnectionString_Access(string sql, string ConnectionString_Access)
{
string ErrorMessage;
return SQLCommon.ExecuteNonQuery_OleDb(sql, ConnectionString_Access, out ErrorMessage);
}
/// <summary>
/// 用于 Access
/// 执行标准SQL语句不要求返回结果适合增、删、改
/// </summary>
/// <param name="sql"></param>
/// <returns></returns>
public static bool ExecuteSQL_OleDb_Access(string sql)
{
string ErrorMessage;
return SQLCommon.ExecuteNonQuery_OleDb(sql, ApplicationConfig.ConnectionString_Access, out ErrorMessage);
}
/// <summary>
///
/// </summary>
/// <param name="sql"></param>
/// <returns></returns>
public static bool ExecuteSQL_OleDb_Access(StringCollection sql)
{
string ErrorMessage;
return SQLCommon.ExecuteNonQuery_OleDb(sql, ApplicationConfig.ConnectionString_Access, out ErrorMessage);
}
/// <summary>
/// 用于 Access
/// 执行标准SQL查询语句返回记录集
/// </summary>
/// <param name="sql"></param>
/// <param name="dt"></param>
/// <returns></returns>
public static bool ExecuteDataTable_OleDb_Access(string sql, out DataTable dt)
{
string ErrorMessage;
return SQLCommon.ExecuteDataTable_OleDb(sql, ApplicationConfig.ConnectionString_Access, out dt, out ErrorMessage);
}
/// <summary>
/// 返回count
/// </summary>
/// <param name="sql"></param>
/// <param name="count"></param>
/// <returns></returns>
public static bool ExecuteOutNum_OleDb_Access(string sql, out int count)
{
string errorMessage;
return SQLCommon.ExecuteOutNum_OleDb(sql, ApplicationConfig.ConnectionString_Access, out count, out errorMessage);
}
/// <summary>
/// 返回count
/// </summary>
/// <param name="sql"></param>
/// <param name="filename"></param>
/// <param name="count"></param>
/// <returns></returns>
public static bool ExecuteOutNum_OleDb_Access(string sql, string filename, out int count)
{
string connectionString = ConnectString_OleDb_Access(filename);
string errorMessage;
return SQLCommon.ExecuteOutNum_OleDb(sql, connectionString, out count, out errorMessage);
}
/// <summary>
/// 增加Access数据
/// </summary>
/// <param name="sql"></param>
/// <param name="dt"></param>
/// <param name="oleDbParameter"></param>
/// <returns></returns>
public static bool ExecuteDataTable_OleDb_Insert_Access(string sql, DataTable dt, ref OleDbParameter[] oleDbParameter)
{
string errorMessage;
return SQLCommon.ExecuteDataTable_OleDb_Insert(sql, ApplicationConfig.ConnectionString_Access, dt, ref oleDbParameter, out errorMessage);
}
/// <summary>
/// 执行Insert 命令,同时返回自动编号
/// 保存到Access数据库
/// </summary>
/// <param name="sql"></param>
/// <param name="newID"></param>
public static bool ExecuteNonQuery_newID_OleDb(string sql, out long newID)
{
return SQLCommon.ExecuteNonQuery_newID_OleDb(sql, ApplicationConfig.ConnectionString_Access, out newID);
}
/// <summary>
/// 执行Insert 命令,同时返回自动编号
/// </summary>
/// <param name="sql"></param>
/// <param name="filename"></param>
/// <param name="newID"></param>
public static bool ExecuteNonQuery_newID_OleDb(string sql, string filename, out long newID)
{
string strConnectionstring = ConnectString_OleDb_Access(filename);
return SQLCommon.ExecuteNonQuery_newID_OleDb(sql, strConnectionstring, out newID);
}
/// <summary>
/// 创建增加数据用表
/// </summary>
/// <param name="dt"></param>
/// <returns></returns>
public static DataTable GetInsertTable(DataTable dt)
{
DataTable dt2 = dt.Clone();
for (int i = 0; i < dt.Rows.Count; i++)
{
DataRow row = dt2.NewRow();
for (int j = 0; j < dt.Columns.Count; j++)
{
row[j] = dt.Rows[i][j];
}
dt2.Rows.Add(row);
}
return dt2;
}
/// <summary>
///
/// </summary>
/// <param name="sql"></param>
/// <param name="ds"></param>
/// <returns></returns>
public static bool ExecuteDataTable_OleDb_Access1(string sql, out DataSet ds)
{
string ErrorMessage;
return SQLCommon.ExecuteDataTable_OleDb(sql, ApplicationConfig.dbConnectionString_Access, out ds, out ErrorMessage);
}
/// <summary>
/// 获取EXCEL的表 表名字列
/// </summary>
/// <param name="p_ExcelFile">Excel文件</param>
/// <returns>数据表</returns>
public static DataTable GetExcelTableName(string p_ExcelFile)
{
try
{
if (File.Exists(p_ExcelFile))
{
OleDbConnection _ExcelConn = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Extended Properties=\"Excel 8.0\";Data Source=" + p_ExcelFile);
_ExcelConn.Open();
DataTable _Table = _ExcelConn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null);
_ExcelConn.Close();
return _Table;
}
return null;
}
catch
{
return null;
}
}
/// <summary>
///
/// </summary>
/// <param name="strConnectionstring"></param>
/// <returns></returns>
public static SqlConnection getConn(string strConnectionstring)
{
SqlConnection conn = new SqlConnection(strConnectionstring);
conn.Open();
return conn;
}
/// <summary>
///
/// </summary>
/// <param name="conn"></param>
/// <param name="mTrans"></param>
/// <param name="sql"></param>
public static void TranExecuteNonQuery(SqlConnection conn, SqlTransaction mTrans, string sql)
{
SqlCommand cmd = new SqlCommand(sql, conn);
cmd.Transaction = mTrans;
cmd.ExecuteNonQuery();
}
/// <summary>
/// 执行指定Sql 语句,返回所影响的行数。
/// </summary>
/// <param name="sql">拼接出来的SQL语句。</param>
/// <param name="strConnectionstring"></param>
/// <param name="count">返回所影响的记录条数</param>
/// <param name="ErrorMessage">ErrorMessage</param>
/// <returns>True / False</returns>
public static bool ExecuteSql_count(string sql, string strConnectionstring, out int count, out string ErrorMessage)
{
SqlParameter[] thisParms = new SqlParameter[2]
{
new SqlParameter("@sql", sql),
null
};
thisParms[0].Direction = ParameterDirection.Input;
thisParms[1] = new SqlParameter("@count", SqlDbType.Int, 32);
thisParms[1].Direction = ParameterDirection.Output;
count = 0;
ErrorMessage = "";
if (SQLCommon.ExecuteStoredProcedure("sp_xt_executesql_count", strConnectionstring, ref thisParms, out ErrorMessage))
{
count = Convert.ToInt32(thisParms[1].Value.ToString());
return true;
}
return false;
}
/// <summary>
/// 执行指定插入 Sql 语句返回当前记录的新ID。
/// </summary>
/// <param name="sql">拼接出来的SQL语句。</param>
/// <param name="strConnectionstring"></param>
/// <param name="tablename"></param>
/// <param name="newID">返回当前记录的新ID</param>
/// <param name="ErrorMessage"></param>
/// <returns></returns>
public static bool ExecuteSql_newID(string sql, string strConnectionstring, string tablename, out long newID, out string ErrorMessage)
{
SqlParameter[] thisParms = new SqlParameter[3]
{
new SqlParameter("@sql", sql),
null,
null
};
thisParms[0].Direction = ParameterDirection.Input;
thisParms[1] = new SqlParameter("@newID", SqlDbType.BigInt, 64);
thisParms[1].Direction = ParameterDirection.Output;
thisParms[2] = new SqlParameter("@tablename", tablename);
thisParms[2].Direction = ParameterDirection.Input;
newID = 0L;
ErrorMessage = "";
if (SQLCommon.ExecuteStoredProcedure("sp_xt_insertRecord_newID", strConnectionstring, ref thisParms, out ErrorMessage))
{
newID = Convert.ToInt32(thisParms[1].Value.ToString());
return true;
}
return false;
}
/// <summary>
///
/// </summary>
/// <param name="sql"></param>
/// <param name="strConnectionstring"></param>
/// <param name="tablename"></param>
/// <param name="newID"></param>
/// <param name="ErrorMessage"></param>
/// <returns></returns>
public static bool ExecuteSql_newID(string sql, string strConnectionstring, string tablename, out int newID, out string ErrorMessage)
{
SqlParameter[] thisParms = new SqlParameter[3]
{
new SqlParameter("@sql", sql),
null,
null
};
thisParms[0].Direction = ParameterDirection.Input;
thisParms[1] = new SqlParameter("@newID", SqlDbType.Int, 32);
thisParms[1].Direction = ParameterDirection.Output;
thisParms[2] = new SqlParameter("@tablename", tablename);
thisParms[2].Direction = ParameterDirection.Input;
newID = 0;
ErrorMessage = "";
if (SQLCommon.ExecuteStoredProcedure("sp_xt_insertRecord_newID", strConnectionstring, ref thisParms, out ErrorMessage))
{
newID = Convert.ToInt32(thisParms[1].Value.ToString());
return true;
}
return false;
}
/// <summary>
/// 根据输入参数,对指定表进行分页显示
/// </summary>
/// <param name="tbname">要进行分页的表/视图的名称</param>
/// <param name="strConnectionstring"></param>
/// <param name="fieldkey">表或者视图的主键</param>
/// <param name="where">进行过滤的条件</param>
/// <param name="fieldshow">需要显示的字段名称</param>
/// <param name="fieldorder">排序的条件,直接输入字段名 +desc/asc例如id desc,name asc</param>
/// <param name="pagecurrent">当前页的页码</param>
/// <param name="pagesize">每一页的显示的数据量</param>
/// <param name="pagecount">返回页码总数</param>
/// <param name="itemcount">返回数据总数</param>
/// <param name="ds"></param>
/// <param name="ErrorMessage">返回错误</param>
/// <returns>True / False</returns>
public static bool ExecPageQuery(string tbname, string strConnectionstring, string fieldkey, string where, string fieldshow, string fieldorder, int pagecurrent, int pagesize, out int pagecount, out int itemcount, out DataSet ds, out string ErrorMessage)
{
SqlParameter[] thisParms = new SqlParameter[9]
{
new SqlParameter("@tbname", tbname),
null,
null,
null,
null,
null,
null,
null,
null
};
thisParms[0].Direction = ParameterDirection.Input;
thisParms[1] = new SqlParameter("@fieldkey", fieldkey);
thisParms[1].Direction = ParameterDirection.Input;
thisParms[2] = new SqlParameter("@where", where);
thisParms[2].Direction = ParameterDirection.Input;
thisParms[3] = new SqlParameter("@fieldshow", fieldshow);
thisParms[3].Direction = ParameterDirection.Input;
thisParms[4] = new SqlParameter("@fieldorder", fieldorder);
thisParms[4].Direction = ParameterDirection.Input;
thisParms[5] = new SqlParameter("@pagecurrent", pagecurrent);
thisParms[5].Direction = ParameterDirection.Input;
thisParms[6] = new SqlParameter("@pagesize", pagesize);
thisParms[6].Direction = ParameterDirection.Input;
thisParms[7] = new SqlParameter("@pagecount", SqlDbType.Int, 32);
thisParms[7].Direction = ParameterDirection.Output;
thisParms[8] = new SqlParameter("@itemcount", SqlDbType.Int, 32);
thisParms[8].Direction = ParameterDirection.Output;
pagecount = 0;
itemcount = 0;
ErrorMessage = "";
if (SQLCommon.ExecuteStoredProcedure("sp_xt_pagesplit", strConnectionstring, ref thisParms, out ds, out ErrorMessage))
{
pagecount = Convert.ToInt32(thisParms[7].Value.ToString());
itemcount = Convert.ToInt32(thisParms[8].Value.ToString());
return true;
}
return false;
}
public static bool ExecPageQueryMesWork(string tbname, string strConnectionstring, string fieldkey, string where, string fieldshow, string fieldorder, string filedgroup, int pagecurrent, int pagesize, out int pagecount, out int itemcount, out DataTable dt, out string ErrorMessage)
{
dt = new DataTable();
SqlParameter[] thisParms = new SqlParameter[9]
{
new SqlParameter("@tbname", tbname),
new SqlParameter("@fieldkey", fieldkey),
new SqlParameter("@where", where),
new SqlParameter("@fieldshow", fieldshow),
new SqlParameter("@fieldOrder", fieldorder),
new SqlParameter("@PageCurrent", pagecurrent),
new SqlParameter("@PageSize", pagesize),
new SqlParameter("@PageCount", SqlDbType.Int, 32),
new SqlParameter("@ItemCount", SqlDbType.Int, 32)
};
thisParms[7].Direction = ParameterDirection.Output;
thisParms[8].Direction = ParameterDirection.Output;
pagecount = 0;
itemcount = 0;
ErrorMessage = "";
if (SQLCommon.ExecuteStoredProcedure("sp_xt_pagesplit", strConnectionstring, ref thisParms, out DataSet ds, out ErrorMessage))
{
dt = ds.Tables[0];
pagecount = Convert.ToInt32(thisParms[7].Value.ToString());
itemcount = Convert.ToInt32(thisParms[8].Value.ToString());
return true;
}
return false;
}
/// <summary>
/// 根据输入参数,对指定表进行分页显示
/// </summary>
/// <param name="tbname">要进行分页的表/视图的名称</param>
/// <param name="strConnectionstring">表或者视图的主键</param>
/// <param name="fieldkey">表或者视图的主键</param>
/// <param name="where">进行过滤的条件</param>
/// <param name="fieldshow">需要显示的字段名称</param>
/// <param name="fieldorder">排序的条件,直接输入字段名 +desc/asc例如id desc,name asc</param>
/// <param name="filedgroup">排序的条件,直接输入字段名 +desc/asc例如id desc,name asc</param>
/// <param name="pagecurrent">当前页的页码</param>
/// <param name="pagesize">每一页的显示的数据量</param>
/// <param name="pagecount">返回页码总数</param>
/// <param name="itemcount">返回数据总数</param>
/// <param name="ds"></param>
/// <param name="ErrorMessage">返回错误</param>
/// <returns>True / False</returns>
public static bool ExecPageQuery_GroupBy(string tbname, string strConnectionstring, string fieldkey, string where, string fieldshow, string fieldorder, string filedgroup, int pagecurrent, int pagesize, out int pagecount, out int itemcount, out DataSet ds, out string ErrorMessage)
{
SqlParameter[] thisParms = new SqlParameter[10]
{
new SqlParameter("@tbname", tbname),
null,
null,
null,
null,
null,
null,
null,
null,
null
};
thisParms[0].Direction = ParameterDirection.Input;
thisParms[1] = new SqlParameter("@fieldkey", fieldkey);
thisParms[1].Direction = ParameterDirection.Input;
thisParms[2] = new SqlParameter("@where", where);
thisParms[2].Direction = ParameterDirection.Input;
thisParms[3] = new SqlParameter("@fieldshow", fieldshow);
thisParms[3].Direction = ParameterDirection.Input;
thisParms[4] = new SqlParameter("@fieldorder", fieldorder);
thisParms[4].Direction = ParameterDirection.Input;
thisParms[5] = new SqlParameter("@filedgroup", filedgroup);
thisParms[5].Direction = ParameterDirection.Input;
thisParms[6] = new SqlParameter("@pagecurrent", pagecurrent);
thisParms[6].Direction = ParameterDirection.Input;
thisParms[7] = new SqlParameter("@pagesize", pagesize);
thisParms[7].Direction = ParameterDirection.Input;
thisParms[8] = new SqlParameter("@pagecount", SqlDbType.Int, 32);
thisParms[8].Direction = ParameterDirection.Output;
thisParms[9] = new SqlParameter("@itemcount", SqlDbType.Int, 32);
thisParms[9].Direction = ParameterDirection.Output;
pagecount = 0;
itemcount = 0;
ErrorMessage = "";
if (SQLCommon.ExecuteStoredProcedure("sp_xt_pagesplit_GroupBy", strConnectionstring, ref thisParms, out ds, out ErrorMessage))
{
pagecount = Convert.ToInt32(thisParms[8].Value.ToString());
itemcount = Convert.ToInt32(thisParms[9].Value.ToString());
return true;
}
return false;
}
/// <summary>
///
/// </summary>
/// <param name="intGrantee"></param>
/// <param name="intGranteeType"></param>
/// <param name="intObjectId"></param>
/// <param name="intOjbectType"></param>
/// <param name="strConnectionString"></param>
/// <param name="strErrmessage"></param>
/// <returns></returns>
public static bool addGrants(int intGrantee, int intGranteeType, int intObjectId, int intOjbectType, string strConnectionString, out string strErrmessage)
{
string sql = "insert into grants (grantee,granteetype,objectid,objecttype,createtime,creator,creatorid) values(" + intGrantee + "," + intGranteeType + "," + intObjectId + "," + intOjbectType + ",getdate(),'SYSTEM',0)";
if (ExecuteSQL(sql, strConnectionString, out strErrmessage))
{
return true;
}
return false;
}
/// <summary>
///
/// </summary>
/// <param name="intGrantee"></param>
/// <param name="intGranteeType"></param>
/// <param name="intObjectId"></param>
/// <param name="intOjbectType"></param>
/// <param name="strConnectionString"></param>
/// <param name="strErrmessage"></param>
/// <returns></returns>
public static bool delGrants(int intGrantee, int intGranteeType, int intObjectId, int intOjbectType, string strConnectionString, out string strErrmessage)
{
string sql = "update grants set deleted=1 where grantee=" + intGrantee + " and granteetype=" + intGranteeType + " and objectid=" + intObjectId + " and objecttype=" + intOjbectType;
if (ExecuteSQL(sql, strConnectionString, out strErrmessage))
{
return true;
}
return false;
}
/// <summary>
/// 提供通用的调用存储过程的方法(增加数据的数据表的到数据库的调用)
/// </summary>
/// <param name="procedureName">存储过程名称</param>
/// <param name="sqlParameters">存储过程参数数组</param>
/// <param name="dt">增加数据的数据表</param>
/// <returns></returns>
public static bool ExecuteStoredProcedure(string procedureName, ref SqlParameter[] sqlParameters, DataTable dt)
{
string errorMessage;
return SQLCommon.ExecuteStoredProcedure(procedureName, ApplicationConfig.ConnectionString_MES, ref sqlParameters, dt, out errorMessage);
}
/// <summary>
/// 提供通用的调用存储过程的方法(增加数据的数据表的到数据库的调用)
/// </summary>
/// <param name="procedureName">存储过程名称</param>
/// <param name="sqlParameters">存储过程参数数组</param>
/// <returns>布尔值true表示该执行成功false表示执行失败</returns>
public static bool ExecuteStoredProcedure(string procedureName, ref SqlParameter[] sqlParameters)
{
string errorMessage;
return SQLCommon.ExecuteStoredProcedure(procedureName, ApplicationConfig.ConnectionString_MES, ref sqlParameters, out errorMessage);
}
/// <summary>
/// 提供通用的调用存储过程的方法(增加数据的数据表的到数据库的调用)
/// </summary>
/// <param name="procedureName"></param>
/// <param name="dt"></param>
/// <returns></returns>
public static bool ExecuteStoredProcedure(string procedureName, out DataTable dt)
{
string errorMessage;
return SQLCommon.ExecuteStoredProcedure(procedureName, ApplicationConfig.ConnectionString_MES, out dt, out errorMessage);
}
/// <summary>
/// 执行带参数的存储过程
/// </summary>
/// <param name="procedureName"></param>
/// <param name="sqlParameters"></param>
/// <param name="dt"></param>
/// <returns></returns>
public static bool ExecuteStoredProcedure(string procedureName, ref SqlParameter[] sqlParameters, out DataTable dt)
{
SQLCommon.ExecuteStoredProcedure(procedureName, ApplicationConfig.ConnectionString_MES, ref sqlParameters, out DataSet ds, out string _);
try
{
dt = ds.Tables[0];
return true;
}
catch
{
dt = null;
return false;
}
}
/// <summary>
/// 获得Excel连接
/// </summary>
/// <param name="filename"></param>
/// <returns></returns>
public static string ConnectString_OleDb(string filename)
{
string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=\"" + filename + "\"";
return strConn + ";Extended Properties=\"Excel 8.0;HDR=NO;IMEX=1\"";
}
/// <summary>
///
/// </summary>
/// <param name="filename"></param>
/// <returns></returns>
public static OleDbConnection getConn_OleDb(string filename)
{
string strConnectionstring = ConnectString_OleDb(filename);
OleDbConnection conn = new OleDbConnection(strConnectionstring);
conn.Open();
return conn;
}
/// <summary>
/// 增加Excel数据
/// </summary>
/// <param name="sql"></param>
/// <param name="filename"></param>
/// <param name="dt"></param>
/// <param name="oleDbParameter"></param>
/// <returns></returns>
public static bool ExecuteDataTable_OleDb_Insert_Excel(string sql, string filename, DataTable dt, ref OleDbParameter[] oleDbParameter)
{
string connectionString = ConnectString_OleDb(filename);
string errorMessage;
return SQLCommon.ExecuteDataTable_OleDb_Insert(sql, connectionString, dt, ref oleDbParameter, out errorMessage);
}
/// <summary>
/// 用于 Excel Access
/// 执行标准SQL语句不要求返回结果适合增、删、改
/// </summary>
/// <param name="sql"></param>
/// <param name="filename">Excel Access文件</param>
/// <param name="ErrorMessage"></param>
/// <returns></returns>
public static bool ExecuteSQL_OleDb(string sql, string filename, out string ErrorMessage)
{
string strConnectionstring = ConnectString_OleDb(filename);
ErrorMessage = "";
return SQLCommon.ExecuteNonQuery_OleDb(sql, strConnectionstring, out ErrorMessage);
}
/// <summary>
///
/// </summary>
/// <param name="sql"></param>
/// <param name="filename"></param>
/// <param name="ErrorMessage"></param>
/// <returns></returns>
public static bool ExecuteSQL_OleDb(StringCollection sql, string filename, out string ErrorMessage)
{
string strConnectionstring = ConnectString_OleDb(filename);
ErrorMessage = "";
return SQLCommon.ExecuteNonQuery_OleDb(sql, strConnectionstring, out ErrorMessage);
}
/// <summary>
/// 用于 Excel Access
/// 执行标准SQL查询语句返回记录集
/// </summary>
/// <param name="sql"></param>
/// <param name="filename"></param>
/// <param name="dt"></param>
/// <param name="ErrorMessage"></param>
/// <returns></returns>
public static bool ExecuteDataTable_OleDb(string sql, string filename, out DataTable dt, out string ErrorMessage)
{
string strConnectionstring = ConnectString_OleDb(filename);
ErrorMessage = "";
return SQLCommon.ExecuteDataTable_OleDb(sql, strConnectionstring, out dt, out ErrorMessage);
}
/// <summary>
/// 增加SqlServer数据
/// </summary>
/// <param name="sql"></param>
/// <param name="dt"></param>
/// <param name="oleDbParameter"></param>
/// <returns></returns>
public static bool ExecuteDataTable_OleDb_Insert_SqlServer(string sql, DataTable dt, ref OleDbParameter[] oleDbParameter)
{
string errorMessage;
return SQLCommon.ExecuteDataTable_OleDb_Insert(sql, ApplicationConfig.ConnectionString_MES, dt, ref oleDbParameter, out errorMessage);
}
/// <summary>
///
/// </summary>
/// <param name="sql"></param>
/// <param name="count"></param>
/// <returns></returns>
public static bool ExecuteOutNum(string sql, out int count)
{
string errorMessage;
return SQLCommon.ExecuteOutNum(sql, ApplicationConfig.ConnectionString_MES, out count, out errorMessage);
}
/// <summary>
/// 提供通用的调用存储过程的方法(更新数据)
/// </summary>
/// <param name="procedureName">存储过程名称</param>
/// <param name="sqlParameters">存储过程参数数组</param>
/// <param name="dt">增加数据的数据表</param>
/// <returns>布尔值true表示该执行成功false表示执行失败</returns>
public static bool ExecuteStoredProcedure_Update(string procedureName, ref SqlParameter[] sqlParameters, DataTable dt)
{
string errorMessage;
return SQLCommon.ExecuteStoredProcedure_Update(procedureName, ApplicationConfig.ConnectionString_MES, ref sqlParameters, dt, out errorMessage);
}
/// <summary>
/// 直接执行制定SQL语句.用于无返回条件的SQL语句执行Insert ,delete update等。
/// </summary>
/// <param name="sql"></param>
/// <returns>成功返回True / 失败返回False</returns>
public static bool ExecuteSQL(string sql)
{
string ErrorMessage;
return SQLCommon.ExecuteNonQuery(sql, ApplicationConfig.ConnectionString_MES, out ErrorMessage);
}
/// <summary>
///
/// </summary>
/// <param name="sql"></param>
/// <returns></returns>
public static bool ExecuteSQL(StringCollection sql)
{
string ErrorMessage;
return SQLCommon.ExecuteNonQuery(sql, ApplicationConfig.ConnectionString_MES, out ErrorMessage);
}
/// <summary>
///
/// </summary>
/// <param name="sql"></param>
/// <param name="sqlParameters"></param>
/// <param name="tb"></param>
/// <returns></returns>
public static bool ExecuteSQL(string sql, ref SqlParameter[] sqlParameters, DataTable tb)
{
string ErrorMessage;
return SQLCommon.ExecuteSQL(sql, ref sqlParameters, ApplicationConfig.ConnectionString_MES, tb, out ErrorMessage);
}
/// <summary>
/// 直接执行制定SQL语句.用于无返回条件的SQL语句执行Insert ,delete update等。
/// </summary>
/// <param name="sql"></param>
/// <param name="strConnectionstring"></param>
/// <param name="ErrorMessage"></param>
/// <returns>成功返回True / 失败返回False</returns>
public static bool ExecuteSQL(string sql, string strConnectionstring, out string ErrorMessage)
{
ErrorMessage = "";
return SQLCommon.ExecuteNonQuery(sql, strConnectionstring, out ErrorMessage);
}
/// <summary>
/// 增加记录后,返回自动编号
/// </summary>
/// <param name="sql"></param>
/// <param name="newID"></param>
/// <returns></returns>
public static bool ExecuteNonQuery_newID(string sql, out long newID)
{
return SQLCommon.ExecuteNonQuery_newID(sql, out newID);
}
/// <summary>
/// 执行指定SQL语句用于执行查询后返回记录集
/// </summary>
/// <param name="sql"></param>
/// <param name="strConnectionstring"></param>
/// <param name="ds">返回记录集</param>
/// <param name="ErrorMessage"></param>
/// <returns></returns>
public static bool ExecuteDataSet(string sql, string strConnectionstring, out DataSet ds, out string ErrorMessage)
{
ErrorMessage = "";
return SQLCommon.ExecuteDataset(sql, strConnectionstring, out ds, out ErrorMessage);
}
/// <summary>
///
/// </summary>
/// <param name="sql"></param>
/// <param name="strConnectionstring"></param>
/// <param name="dt"></param>
/// <param name="ErrorMessage"></param>
/// <returns></returns>
public static bool ExecuteDataTable(string sql, string strConnectionstring, out DataTable dt, out string ErrorMessage)
{
ErrorMessage = "";
return SQLCommon.ExecuteDataTable(sql, strConnectionstring, out dt, out ErrorMessage);
}
/// <summary>
///
/// </summary>
/// <param name="sql"></param>
/// <param name="dt"></param>
/// <returns></returns>
public static bool ExecuteDataTable(string sql, out DataTable dt)
{
string ErrorMessage = "";
return SQLCommon.ExecuteDataTable(sql, ApplicationConfig.ConnectionString_MES, out dt, out ErrorMessage);
}
/// <summary>
///
/// </summary>
/// <param name="sql"></param>
/// <param name="strConnectionstring"></param>
/// <param name="dr"></param>
/// <param name="ErrorMessage"></param>
/// <returns></returns>
public static bool ExecuteDataReader(string sql, string strConnectionstring, out SqlDataReader dr, out string ErrorMessage)
{
ErrorMessage = "";
return SQLCommon.ExecuteDataReader(sql, strConnectionstring, out dr, out ErrorMessage);
}
/// <summary>
/// 测试与数据的连接
/// </summary>
/// <returns></returns>
public static void TestConnection()
{
try
{
if (threadTestConnection == null)
{
threadTestConnection = new Thread(SQLCommon.TestConnection);
threadTestConnection.Start();
return;
}
threadTestConnection.Abort();
threadTestConnection = null;
threadTestConnection = new Thread(SQLCommon.TestConnection);
threadTestConnection.Start();
}
catch (Exception ex)
{
ApplicationLog.WriteLog(ex, ex.Source);
}
}
/// <summary>
/// 测试与数据的连接
/// </summary>
/// <returns></returns>
public static void TestConnectionFirst()
{
SQLCommon.TestConnection();
}
}

View File

@@ -0,0 +1,14 @@
using System.Configuration;
using BasicData;
namespace DataLinkMesWork;
public class DbCallType0
{
private static string connectionString = ConfigurationManager.AppSettings.GetValues("ConnectionString")[0].ToString();
public static string ExePROCEDURE(jsonobj json)
{
return "";
}
}

View File

@@ -0,0 +1,143 @@
using System;
using System.Data;
using System.Text;
namespace DataLinkMesWork;
public class DbCallType1001
{
public static string DbCallType(DataTable dt, string name)
{
string responseText = "";
string[] names = name.Split('&');
int n = Convert.ToInt32(names[2].Split('=')[1]);
int k = Convert.ToInt32(names[3].Split('=')[1]);
return DbCallType(dt, n, k);
}
public static string DbCallType(DataTable dt, int n, int k)
{
string responseText = "";
int len = dt.Rows.Count;
double[] str = new double[len];
for (int i = 0; i < len; i++)
{
str[i] = Convert.ToDouble(dt.Rows[i]["测量值"]);
}
double minV = Min(str);
double maxV = Max(str);
double Dv = (maxV - minV) / (double)n;
Dv = RoundInterval(Dv);
minV = Math.Floor(minV / Dv) * Dv;
maxV = Math.Ceiling(maxV / Dv) * Dv;
string textY1 = "";
string textY2 = "";
double acv = 0.0;
double bottom = minV;
StringBuilder textadd = new StringBuilder();
for (bottom = minV; bottom < maxV; bottom += Dv)
{
int number = 0;
double top = bottom + Dv;
double[] array = str;
foreach (double p in array)
{
if (top >= maxV)
{
if (p >= bottom && p <= top)
{
number++;
}
}
else if (p >= bottom && p < top)
{
number++;
}
}
acv += Convert.ToDouble(number);
object average = (acv / (double)(n * k) * 100.0).ToString("0.00");
textY1 += number;
textY2 += average;
if (top < maxV)
{
textY1 += ",";
textY2 += ",";
}
}
textadd.Append(textY1);
textadd.Append("|");
textadd.Append(textY2);
return Convert.ToString(textadd);
}
/// <summary>
/// 观测值最大值
/// </summary>
/// <param name="Xn">子组观测值</param>
/// <returns></returns>
private static double Max(double[] Xn)
{
double temp = Xn[0];
for (int i = 0; i < Xn.Length; i++)
{
temp = ((Xn[i] > temp) ? Xn[i] : temp);
}
return temp;
}
/// <summary>
/// 观测值最小值
/// </summary>
/// <param name="Xn">子组观测值</param>
/// <returns></returns>
private static double Min(double[] Xn)
{
double temp = Xn[0];
for (int i = 0; i < Xn.Length; i++)
{
temp = ((Xn[i] < temp) ? Xn[i] : temp);
}
return temp;
}
/// <summary>
/// Helper method which rounds specified axsi interval.
/// </summary>
/// <param name="interval">Calculated axis interval.</param>
/// <returns>Rounded axis interval.</returns>
private static double RoundInterval(double interval)
{
if (interval == 0.0)
{
throw new ArgumentOutOfRangeException("interval", "Interval can not be zero.");
}
double step = -1.0;
double tempValue = interval;
while (tempValue > 1.0)
{
step += 1.0;
tempValue /= 10.0;
if (step > 1000.0)
{
throw new InvalidOperationException("Auto interval error due to invalid point values or axis minimum/maximum.");
}
}
tempValue = interval;
if (tempValue < 1.0)
{
step = 0.0;
}
while (tempValue < 1.0)
{
step -= 1.0;
tempValue *= 10.0;
if (step < -1000.0)
{
throw new InvalidOperationException("Auto interval error due to invalid point values or axis minimum/maximum.");
}
}
double tempDiff = interval / Math.Pow(10.0, step);
tempDiff = ((tempDiff < 3.0) ? 2.0 : ((!(tempDiff < 7.0)) ? 10.0 : 5.0));
return tempDiff * Math.Pow(10.0, step);
}
}

View File

@@ -0,0 +1,434 @@
using System.Collections.Generic;
using System.Data;
using Newtonsoft.Json;
namespace DataLinkMesWork;
public class DbCallType1003_SqlCmd
{
public static string SqlExec(JsonData json)
{
string result = "{ }";
string sqlCmd = "";
if (json.Keys.Contains("Param"))
{
if (json["Param"] != null)
{
sqlCmd = json["Param"].ToString();
}
}
else if (json.Keys.Contains("param") && json["param"] != null)
{
sqlCmd = json["param"].ToString();
}
Cmd cmd = JsonConvert.DeserializeObject<Cmd>(sqlCmd);
switch (cmd.cmd)
{
case "Insert":
result = Insert(sqlCmd);
break;
case "Select":
result = Select(sqlCmd);
break;
case "Select_check":
result = Select_check(sqlCmd);
break;
case "Select_pages":
result = Select_pages(sqlCmd);
break;
case "Select_pages_check":
result = Select_pages_check(sqlCmd);
break;
case "Delete":
result = Delete(sqlCmd);
break;
case "Update":
result = Update(sqlCmd);
break;
}
return result;
}
private static string Select(string sqlCmd)
{
string result = "{ }";
string sql = SelectSql(sqlCmd);
SqlCall.ExecuteDataTable(sql, out var dt);
return JsonConvert.SerializeObject(dt);
}
private static string Select_check(string sqlCmd)
{
string result = "{ }";
string sql = SelectSql_check(sqlCmd);
SqlCall.ExecuteDataTable(sql, out var dt);
return JsonConvert.SerializeObject(dt);
}
private static string Select_pages(string sqlCmd)
{
DataTable dt = new DataTable();
string result = "{ }";
Select_pages item = JsonConvert.DeserializeObject<Select_pages>(sqlCmd);
int pagecurrent = item.PageCurrent;
int pagesize = item.PageSize;
string where = GetWhereString(item.Where, item.WhereTime);
where = where.Replace("WHERE", "");
string fieldorder = GetOrderPage(item.fieldOrder);
string fieldshow = Get_fieldshow(item.fieldshow);
string fieldkey = item.fieldkey;
string tbname = item.tbname;
SqlCall.ExecPageQuery(tbname, fieldkey, where, fieldshow, fieldorder, pagecurrent, pagesize, out var pagecount, out var itemcount, out dt);
result = JsonConvert.SerializeObject(dt);
string resultOutput = "[{ \"ItemCount\":\"" + itemcount + "\",\"PageCount\":\"" + pagecount + "\"}]";
string jsonStr = "{\"result\":" + result + ",\"output\":" + resultOutput + "}";
return "{\"result\":" + result + ",\"output\":" + resultOutput + "}";
}
private static string Select_pages_check(string sqlCmd)
{
int pagecurrent = 1;
int pagesize = 15;
DataTable dt = new DataTable();
string result = "{ }";
Select_pages_check item = JsonConvert.DeserializeObject<Select_pages_check>(sqlCmd);
string where = GetWhereString_check(item.Where, item.WhereTime);
where = where.Replace("WHERE", "");
string fieldorder = GetOrderPage(item.fieldOrder);
string fieldshow = Get_fieldshow(item.fieldshow);
string fieldkey = "'" + item.fieldkey + "'";
string tbname = item.tbname;
SqlCall.ExecPageQuery(tbname, fieldkey, where, fieldshow, fieldorder, pagecurrent, pagesize, out var pagecount, out var itemcount, out dt);
result = JsonConvert.SerializeObject(dt);
string resultOutput = "[{ \"ItemCount\":\"" + itemcount + "\",\"PageCount\":\"" + pagecount + "\"}]";
string jsonStr = "{\"result\":" + result + ",\"output\":" + resultOutput + "}";
return "{\"result\":" + result + ",\"output\":" + resultOutput + "}";
}
private static string Insert(string sqlCmd)
{
string result = "[{ \"result\":\"0\"}]";
string sql = InsertSql(sqlCmd);
SqlCall.ExecuteNonQuery(sql, out var errorMessage);
if (errorMessage == "")
{
result = "[{ \"result\":\"1\"}]";
}
return result;
}
private static string Delete(string sqlCmd)
{
string result = "[{ \"result\":\"0\"}]";
string sql = DeleteSql(sqlCmd);
SqlCall.ExecuteNonQuery(sql, out var errorMessage);
if (errorMessage == "")
{
result = "[{ \"result\":\"1\"}]";
}
return result;
}
private static string Update(string sqlCmd)
{
string result = "[{ \"result\":\"0\"}]";
string sql = UpdateSql(sqlCmd);
if (sql.Length < 1)
{
return result;
}
SqlCall.ExecuteNonQuery(sql, out var errorMessage);
if (errorMessage == "")
{
result = "[{ \"result\":\"1\"}]";
}
return result;
}
private static string InsertSql(string sqlCmd)
{
Insert itemSql = JsonConvert.DeserializeObject<Insert>(sqlCmd);
string sql = "";
string field = "";
string value = "";
foreach (string item in itemSql.fieldshow)
{
field = field + item + ",";
}
field = field.Remove(field.LastIndexOf(","), 1);
field = "(" + field + ")";
foreach (object item2 in itemSql.values)
{
value = ((!(item2 is string)) ? (value + item2?.ToString() + ",") : ((!cheackValueSpecialFormat(item2.ToString())) ? (value + " '" + item2?.ToString() + "' , ") : (value + " " + item2?.ToString() + " , ")));
}
value = value.Remove(value.LastIndexOf(","), 1);
value = "(" + value + ")";
return " INSERT INTO " + itemSql.tbname + field + " VALUES " + value;
}
private static string DeleteSql(string sqlCmd)
{
Delete item = JsonConvert.DeserializeObject<Delete>(sqlCmd);
string where = GetWhereString(item.Where, item.WhereTime);
if (where.Length < 1)
{
return "";
}
string sql = "DELETE FROM " + item.tbname;
if (where.Length > 1)
{
sql = sql + " where " + where;
}
return sql;
}
private static string UpdateSql(string sqlCmd)
{
Update itemSql = JsonConvert.DeserializeObject<Update>(sqlCmd);
string field = "";
if (itemSql.fieldshow.Count < 1)
{
return "";
}
if (itemSql.fieldshow.Count != itemSql.values.Count)
{
return "";
}
for (int i = 0; i < itemSql.fieldshow.Count; i++)
{
field = ((!(itemSql.values[i] is string)) ? (field + itemSql.fieldshow[i] + " = " + itemSql.values[i]?.ToString() + " , ") : ((!cheackValueSpecialFormat(itemSql.values[i].ToString())) ? (field + itemSql.fieldshow[i] + " = '" + itemSql.values[i]?.ToString() + "' , ") : (field + itemSql.fieldshow[i] + " = " + itemSql.values[i]?.ToString() + " , ")));
}
field = field.Remove(field.LastIndexOf(","), 1);
string where = GetWhereString(itemSql.Where, itemSql.WhereTime);
if (where.Length < 1)
{
return "";
}
string sql = "UPDATE " + itemSql.tbname + " SET " + field;
if (where.Length > 1)
{
sql = sql + " where " + where;
}
return sql;
}
private static bool cheackValueSpecialFormat(string fieldValue)
{
bool isSpecialFormat = false;
fieldValue = fieldValue.ToLower();
if (fieldValue.Contains("getdate"))
{
isSpecialFormat = true;
}
if (fieldValue.Contains("convert("))
{
isSpecialFormat = true;
}
if (fieldValue.Contains("left("))
{
isSpecialFormat = true;
}
if (fieldValue.Contains("rank()"))
{
isSpecialFormat = true;
}
if (fieldValue.Contains("case "))
{
isSpecialFormat = true;
}
if (fieldValue.Contains("row_number "))
{
isSpecialFormat = true;
}
return isSpecialFormat;
}
private static string SelectSql(string sqlCmd)
{
Select item = JsonConvert.DeserializeObject<Select>(sqlCmd);
string where = GetWhereString(item.where, item.WhereTime);
string field = Get_fieldshow(item.fieldshow);
string group = Get_fieldGroup(item.group);
string sql = "SELECT " + field + " FROM " + item.tbname;
if (where.Length > 1)
{
sql = sql + " WHERE " + where;
}
sql += group;
if (item.fieldOrder.Count > 0)
{
string orderby = GetOrder(item.fieldOrder);
sql += orderby;
}
return sql;
}
private static string Get_fieldshow(List<string> fieldshow)
{
string field = "";
foreach (string item in fieldshow)
{
field = field + item + ", ";
}
return field.Remove(field.LastIndexOf(","), 1);
}
private static string Get_fieldGroup(List<string> fieldGroup)
{
string group = "";
if (fieldGroup.Count > 0)
{
foreach (string item in fieldGroup)
{
group = group + item + ", ";
}
group = " GROUP BY " + group.Remove(group.LastIndexOf(","), 1);
}
return group;
}
private static string SelectSql_check(string sqlCmd)
{
Select_check item = JsonConvert.DeserializeObject<Select_check>(sqlCmd);
string field = "";
field = Get_fieldshow(item.fieldshow);
string where = GetWhereString_check(item.where_check, item.WhereTime);
string sql = "SELECT " + field + " FROM " + item.tbname;
if (where.Length > 1)
{
sql += where;
if (item.fieldOrder.Count > 0)
{
string orderby = GetOrder(item.fieldOrder);
sql += orderby;
}
}
return sql;
}
private static string GetOrder(List<string> item)
{
string order = "";
foreach (string s in item)
{
order = order + s + ",";
}
order = order.Remove(order.LastIndexOf(","), 1);
return " ORDER BY " + order;
}
private static string GetOrderPage(List<string> item)
{
string order = "";
foreach (string s in item)
{
order = order + s + ",";
}
return order.Remove(order.LastIndexOf(","), 1);
}
private static string GetWhereString(List<Where> Where, List<WhereTime> WhereTime)
{
string where = " 1 = 1 ";
string whereTime = "";
if (Where.Count > 0)
{
where += GetWhere(Where);
if (WhereTime.Count > 0)
{
whereTime = GetWhereTime(WhereTime);
where = where + " AND " + whereTime;
}
}
else if (WhereTime.Count > 0)
{
where = GetWhereTime(WhereTime);
}
return where;
}
private static string GetWhere(List<Where> Where)
{
string where = "";
for (int i = 0; i < Where.Count; i++)
{
string item = GetWhereItem(Where[i]);
where = where + " AND " + item;
}
return where;
}
private static string GetWhereTime(List<WhereTime> WhereTime)
{
string where = "";
for (int i = 0; i < WhereTime.Count; i++)
{
string item = GetWhereTimeItem(WhereTime[i]);
where = ((i != 0) ? (where + " AND " + item) : (where + item));
}
return where;
}
private static string GetWhereString_check(List<Where_check> Where, List<WhereTime> WhereTime)
{
string where = "";
string whereTime = "";
int itemCount = 0;
for (int i = 0; i < Where.Count; i++)
{
if (Where[i].IsCheck)
{
string item = GetWhereItem(Where[i]);
where = ((itemCount != 0) ? (where + " AND " + item) : (" WHERE " + item));
itemCount++;
}
}
if (itemCount > 0)
{
if (WhereTime.Count > 0)
{
where = where + " AND " + whereTime;
}
}
else if (WhereTime.Count > 0)
{
where = " WHERE " + whereTime;
}
return where;
}
private static string GetWhereItem(Where_check item)
{
if (item.value is string)
{
return " (" + item.fieldname + "='" + item.value?.ToString() + "') ";
}
return " (" + item.fieldname + "=" + item.value?.ToString() + ") ";
}
private static string GetWhereTimeItem(WhereTime item)
{
return " (" + item.fieldname + ">='" + item.start + "' AND " + item.fieldname + "<='" + item.end + "') ";
}
private static string GetWhereItem(Where item)
{
if (item.value is string)
{
if (item.logic == null || item.logic == "=")
{
return "(" + item.fieldname + " = '" + item.value?.ToString() + "')";
}
if (item.logic == "in")
{
return "(" + item.fieldname + " " + item.logic + " " + item.value?.ToString() + ")";
}
return "(" + item.fieldname + " " + item.logic + " '" + item.value?.ToString() + "')";
}
if (item.logic == null || item.logic == "")
{
return "(" + item.fieldname + " = " + item.value?.ToString() + ")";
}
return "(" + item.fieldname + " " + item.logic + " " + item.value?.ToString() + ")";
}
}

View File

@@ -0,0 +1,164 @@
using System;
using System.Configuration;
using System.Data;
using System.Data.SqlClient;
using System.Text.RegularExpressions;
namespace DataLinkMesWork;
/// <summary>
/// 查询 DbCallType1 的更新版 采用新协议 例:{"type":"11","name":"存储过程","param":"[{\"name\":\"name1\",\"value\":\"value1\"},{\"name\":\"name2\",\"value\":\"value1\"}]"}
/// </summary>
public class DbCallType11
{
private static string connectionString = ConfigurationManager.AppSettings.GetValues("ConnectionString")[0].ToString();
public static string ExePROCEDURE(JsonData json)
{
SqlParameter[] thisParms = null;
string result = "";
bool isOK = false;
bool isOutput = false;
DataSet ds = null;
try
{
DataLink.GetString_JsonData(json, out var _, out var name1, out var param1, out var _, out var _, out var _, out var _, out var _);
JsonData jsonDataName = name1;
JsonData jsonDataParam = param1;
JsonData jsonData = JsonMapper.ToObject(jsonDataParam.ToString());
if (jsonDataParam.ToString() == "" || jsonDataParam.ToString() == null)
{
isOK = SQLCommon.ExecuteStoredProcedure(jsonDataName.ToString(), connectionString, ref thisParms, out ds, out result);
}
else
{
thisParms = new SqlParameter[jsonData.Count];
for (int i = 0; i < jsonData.Count; i++)
{
string name2 = jsonData[i]["name"].ToString();
string value = null;
try
{
if (jsonData[i]["value"].IsArray)
{
value = jsonData[i]["value"].ToJson().ToString().Replace("[", "")
.Replace("]", "")
.Replace("\"", "");
value = DeUnicode(value);
}
else
{
value = jsonData[i]["value"].ToString();
}
}
catch (Exception)
{
value = null;
}
string output = null;
string type2 = null;
thisParms[i] = new SqlParameter(name2, value);
if (jsonData[i].ContainsKey("output"))
{
output = jsonData[i]["output"].ToString();
}
if (jsonData[i].ContainsKey("type"))
{
type2 = jsonData[i]["type"].ToString();
}
if (output == "1")
{
object inputValue = null;
inputValue = GetInputValue(type2, output);
thisParms[i] = new SqlParameter(name2, inputValue);
thisParms[i].Direction = ParameterDirection.Output;
isOutput = true;
}
}
isOK = SQLCommon.ExecuteStoredProcedure(jsonDataName.ToString(), connectionString, ref thisParms, out ds, out result);
}
if (isOK)
{
if (ds != null && ds.Tables.Count > 0)
{
if (json.ContainsKey("pageSize") && json.ContainsKey("pageList"))
{
int pageSize = int.Parse(json["pageSize"].ToString());
int pageList = int.Parse(json["pageList"].ToString());
DataTable dt = ds.Tables[0];
DataTable dt2 = dt.Copy();
dt2.Rows.Clear();
for (int j = (pageList - 1) * pageSize; j < pageList * pageSize; j++)
{
if (j < dt.Rows.Count)
{
dt2.ImportRow(dt.Rows[j]);
}
}
result = JsonHelper.CreateJsonParameters(dt2, displayCount: true, dt.Rows.Count);
}
else
{
result = JsonHelper.DataTableToJson(ds.Tables[0]);
}
}
string resultOutput = "";
if (isOutput)
{
resultOutput = SQLCommon.GetOutputValue(thisParms);
string jsonStr = "{\"result\":" + result + ",\"output\":" + resultOutput + "}";
result = jsonStr;
}
}
else
{
result = "[{ \"result\":\"0\"}]";
}
}
catch (Exception)
{
result = "[{ \"result\":\"0\"}]";
}
return result;
}
/// <summary>
/// Unicode解码
/// </summary>
/// <param name="str"></param>
/// <returns></returns>
public static string DeUnicode(string str)
{
Regex reg = new Regex("(?i)\\\\[uU]([0-9a-f]{4})");
return reg.Replace(str, (Match m) => ((char)Convert.ToInt32(m.Groups[1].Value, 16)).ToString());
}
/// <summary>
/// 返回输出参数类型
/// </summary>
/// <param name="type"></param>
/// <param name="output"></param>
/// <returns></returns>
private static object GetInputValue(object type, object output)
{
object inputValue = null;
switch (type.ToString())
{
case "int":
return Convert.ToInt32(output);
case "string":
return output;
case "boolean":
case "bool":
if (output.ToString() == "1" || output.ToString() == "true")
{
return true;
}
return false;
case "datetime":
return Convert.ToDateTime(output);
default:
return output.ToString();
}
}
}

View File

@@ -0,0 +1,141 @@
using System;
using System.Configuration;
using System.Data;
using System.Data.SqlClient;
using System.Text.RegularExpressions;
namespace DataLinkMesWork;
/// <summary>
/// 增删改 DbCallType2 的更新版 采用新协议 {"type":"12","name":"存储过程","param":"[{\"name\":\"name1\",\"value\":\"value1\"},{\"name\":\"name2\",\"value\":\"value1\"}]"}
/// </summary>
public class DbCallType12
{
private static string connectionString = ConfigurationManager.AppSettings.GetValues("ConnectionString")[0].ToString();
public static string ExePROCEDURE(JsonData json)
{
SqlParameter[] thisParms = null;
string result = "";
bool isOK = false;
bool isOutput = false;
try
{
DataLink.GetString_JsonData(json, out var _, out var name1, out var param1, out var _, out var _, out var _, out var _, out var _);
JsonData jsonDataName = name1;
JsonData jsonDataParam = param1;
JsonData jsonData = JsonMapper.ToObject(jsonDataParam.ToString());
if (jsonDataParam.ToString() == "" || jsonDataParam.ToString() == null)
{
isOK = SQLCommon.ExecuteStoredProcedure(jsonDataName.ToString(), connectionString, ref thisParms, out result);
}
else
{
thisParms = new SqlParameter[jsonData.Count];
for (int i = 0; i < jsonData.Count; i++)
{
string name2 = jsonData[i]["name"].ToString();
string value = null;
try
{
if (jsonData[i]["value"].IsArray)
{
value = jsonData[i]["value"].ToJson().ToString().Replace("[", "")
.Replace("]", "")
.Replace("\"", "");
value = DeUnicode(value);
}
else
{
value = jsonData[i]["value"].ToString();
}
}
catch (Exception)
{
value = null;
}
string output = null;
string type2 = null;
thisParms[i] = new SqlParameter(name2, value);
if (jsonData[i].ContainsKey("output"))
{
output = jsonData[i]["output"].ToString();
}
if (jsonData[i].ContainsKey("type"))
{
type2 = jsonData[i]["type"].ToString();
}
if (output == "1")
{
object inputValue = null;
inputValue = GetInputValue(type2, output);
thisParms[i] = new SqlParameter(name2, inputValue);
thisParms[i].Direction = ParameterDirection.Output;
isOutput = true;
}
}
isOK = SQLCommon.ExecuteStoredProcedure(jsonDataName.ToString(), connectionString, ref thisParms, out result);
}
if (isOK)
{
result = "[{ \"result\":\"1\"}]";
string resultOutput = "";
if (isOutput)
{
resultOutput = SQLCommon.GetOutputValue(thisParms);
string jsonStr = "{\"result\":" + result + ",\"output\":" + resultOutput + "}";
result = jsonStr;
}
}
else
{
result = "[{ \"result\":\"0\"}]";
}
}
catch (Exception)
{
result = "[{ \"result\":\"0\"}]";
}
return result;
}
/// <summary>
/// Unicode解码
/// </summary>
/// <param name="str"></param>
/// <returns></returns>
public static string DeUnicode(string str)
{
Regex reg = new Regex("(?i)\\\\[uU]([0-9a-f]{4})");
return reg.Replace(str, (Match m) => ((char)Convert.ToInt32(m.Groups[1].Value, 16)).ToString());
}
/// <summary>
/// 返回输出参数类型
/// </summary>
/// <param name="type"></param>
/// <param name="output"></param>
/// <returns></returns>
private static object GetInputValue(object type, object output)
{
object inputValue = null;
switch (type.ToString())
{
case "int":
return Convert.ToInt32(output);
case "string":
return output;
case "boolean":
case "bool":
if (output.ToString() == "1" || output.ToString() == "true")
{
return true;
}
return false;
case "datetime":
return Convert.ToDateTime(output);
default:
return output.ToString();
}
}
}

View File

@@ -0,0 +1,59 @@
using System.Configuration;
using System.Data.SqlClient;
using BasicData;
namespace DataLinkMesWork;
/// <summary>
/// 提供通用的调用存储过程的方法(不需要返回查询的记录集的调用)
/// </summary>
/// <param name="procedureName">存储过程名称</param>
/// <param name="connectionString">连库字符串</param>
/// <param name="sqlParameters">存储过程参数数组</param>
/// <param name="errorMessage">错误信息</param>
public class DbCallType2
{
private static string connectionString = ConfigurationManager.AppSettings.GetValues("ConnectionString")[0].ToString();
public static string ExePROCEDURE(jsonobj json)
{
SqlParameter[] thisParms = null;
string result = "";
bool isOutput = false;
try
{
bool isOK;
if (json.Param == "" || json.Param == null)
{
isOK = SQLCommon.ExecuteStoredProcedure(json.Name, connectionString, ref thisParms, out result);
}
else
{
string[] parmas = json.Param.Split('&');
thisParms = new SqlParameter[parmas.Length];
SQLCommon.GetCmdParam(json, ref thisParms, out isOutput);
isOK = SQLCommon.ExecuteStoredProcedure(json.Name, connectionString, ref thisParms, out result);
}
if (isOK)
{
result = "[{ \"result\":\"1\"}]";
string resultOutput = "";
if (isOutput)
{
resultOutput = SQLCommon.GetOutputValue(thisParms);
string jsonStr = "{\"result\":" + result + ",\"output\":" + resultOutput + "}";
result = jsonStr;
}
}
else
{
result = "[{ \"result\":\"0\"}]";
}
}
catch
{
result = "[{ \"result\":\"0\"}]";
}
return result;
}
}

View File

@@ -0,0 +1,39 @@
using System;
using System.Configuration;
using System.Data;
using BasicData;
namespace DataLinkMesWork;
public class DbCallType3
{
private static string connectionString = ConfigurationManager.AppSettings.GetValues("ConnectionString")[0].ToString();
public static string ExePROCEDURE(jsonobj json)
{
string result = "[{ \"result\":\"0\"}]";
if (json.Name != null)
{
DataTable dt = null;
try
{
if (SQLCommon.ExecuteDataTable(json.Name, connectionString, out dt, out result))
{
if (dt != null)
{
result = JsonHelper.DataTableToJson(dt);
}
}
else
{
result = "[{ \"result\":\"0\"}]";
}
}
catch (Exception)
{
result = "[{ \"result\":\"0\"}]";
}
}
return result;
}
}

View File

@@ -0,0 +1,27 @@
using System;
using System.Configuration;
using BasicData;
namespace DataLinkMesWork;
public class DbCallType4
{
private static string connectionString = ConfigurationManager.AppSettings.GetValues("ConnectionString")[0].ToString();
public static string ExePROCEDURE(jsonobj json)
{
string result = "[{ \"result\":\"0\"}]";
if (json.Name != null)
{
try
{
result = ((!SQLCommon.ExecuteNonQuery(json.Name, connectionString, out result)) ? "[{ \"result\":\"0\"}]" : "[{ \"result\":\"1\"}]");
}
catch (Exception)
{
result = "[{ \"result\":\"0\"}]";
}
}
return result;
}
}

View File

@@ -0,0 +1,69 @@
using System;
using System.Configuration;
using System.Data;
using System.Data.SqlClient;
using BasicData;
namespace DataLinkMesWork;
public class DbCallType5
{
private static string connectionString = ConfigurationManager.AppSettings.GetValues("ConnectionString")[0].ToString();
public static string ExePROCEDURE(jsonobj json)
{
string result = "";
DataSet ds = null;
try
{
if (json.Param == "" || json.Param == null)
{
SQLCommon.ExecuteStoredProcedure(json.Name, connectionString, out ds, out result);
}
else
{
SqlParameter[] thisParms;
try
{
string[] parmas = json.Param.Split('|');
thisParms = new SqlParameter[parmas.Length];
for (int i = 0; i < parmas.Length; i++)
{
string[] pp = parmas[i].Split('&');
object inputValue = null;
if (pp.Length == 3)
{
inputValue = pp[2] switch
{
"Int" => Convert.ToInt32(pp[1]),
"String" => pp[2],
"Boolean" => Convert.ToBoolean(pp[1]),
"DateTime" => Convert.ToDateTime(pp[1]),
_ => pp[1],
};
thisParms[i] = new SqlParameter(pp[0], inputValue);
}
else if (pp.Length == 2)
{
thisParms[i] = new SqlParameter(pp[0], pp[1]);
}
}
}
catch (Exception)
{
return result = "参数有误,请检查参数的格式是否正确";
}
SQLCommon.ExecuteStoredProcedure(json.Name, connectionString, ref thisParms, out ds, out result);
}
if (ds != null && ds.Tables.Count > 0)
{
result = JsonHelper.DataTableToJson(ds.Tables[0]);
}
}
catch (Exception ex2)
{
result = ex2.Message;
}
return result;
}
}

View File

@@ -0,0 +1,48 @@
using System;
using System.Configuration;
using System.Data.SqlClient;
namespace DataLinkMesWork;
public class DbCallType6
{
private static string connectionString = ConfigurationManager.AppSettings.GetValues("ConnectionString")[0].ToString();
public static string ExePROCEDURE(JsonData json)
{
SqlParameter[] thisParms = null;
string result = "";
bool isOK = false;
try
{
DataLink.GetString_JsonData(json, out var _, out var name2, out var param1, out var _, out var _, out var _, out var _, out var _);
JsonData jsonDataName = name2;
JsonData jsonDataParam = param1;
JsonData jsonData = JsonMapper.ToObject(jsonDataParam.ToString());
if (jsonDataParam.ToString() == "" || jsonDataParam.ToString() == null)
{
isOK = SQLCommon.ExecuteStoredProcedure(jsonDataName.ToString(), connectionString, ref thisParms, out result);
}
else
{
thisParms = new SqlParameter[jsonData.Count];
for (int i = 0; i < jsonData.Count; i++)
{
string name3 = jsonData[i]["name"].ToString();
string value = jsonData[i]["value"].ToString();
thisParms[i] = new SqlParameter(name3, value);
}
isOK = SQLCommon.ExecuteStoredProcedure(jsonDataName.ToString(), connectionString, ref thisParms, out result);
}
if (isOK)
{
return "[{ \"result\":\"1\"}]";
}
return "[{ \"result\":\"0\"}]";
}
catch (Exception)
{
return "[{ \"result\":\"0\"}]";
}
}
}

View File

@@ -0,0 +1,106 @@
using System;
using System.Collections;
using System.Collections.Generic;
using System.Configuration;
using System.Data;
using System.Data.SqlClient;
namespace DataLinkMesWork;
public class DbCallType7
{
private static string connectionString = ConfigurationManager.AppSettings.GetValues("ConnectionString")[0].ToString();
public static string ExePROCEDURE(JsonData json)
{
SqlParameter[] thisParms = null;
string result = "";
bool isOK = false;
bool isOutput = false;
DataSet ds = null;
DataTable dt1 = null;
string sqlInsert = "";
try
{
DataLink.GetString_JsonData(json, out var _, out var name1, out var param1, out var _, out var _, out var _, out var _, out var _);
JsonData jsonDataName = name1;
JsonData jsonDataParam = param1;
string name2 = jsonDataName.ToString();
using (SqlConnection conn = new SqlConnection(connectionString))
{
try
{
conn.Open();
using (SqlCommand cmd = new SqlCommand(name2, conn))
{
cmd.CommandTimeout = 0;
cmd.CommandType = CommandType.Text;
string createTableStr_key1 = null;
foreach (KeyValuePair<string, JsonData> item in (IEnumerable)jsonDataParam[0])
{
createTableStr_key1 = createTableStr_key1 + "[" + item.Key + "] nvarchar(max),";
}
createTableStr_key1 = createTableStr_key1.TrimEnd(',');
string dropsql = " if exists(select * from sysobjects where id = object_id(N'[" + name2 + "]') and OBJECTPROPERTY(id, N'IsUserTable') = 1) begin DROP TABLE " + name2 + " CREATE TABLE " + name2 + "( TableId int identity(1,1), " + createTableStr_key1 + ") end else begin CREATE TABLE " + name2 + "( TableId int identity(1,1), " + createTableStr_key1 + ") end ";
cmd.CommandText = dropsql;
cmd.ExecuteNonQuery();
for (int i = 0; i < jsonDataParam.Count; i++)
{
JsonData jsonDataParamRow = jsonDataParam[i];
string createTableStr_key2 = null;
string createTableStr_value = null;
string sqlInert = "INSERT INTO " + name2 + "(";
foreach (KeyValuePair<string, JsonData> jParamData in (IEnumerable)jsonDataParamRow)
{
createTableStr_key2 = createTableStr_key2 + "[" + jParamData.Key + "],";
createTableStr_value = createTableStr_value + "'" + jParamData.Value.ToString().Replace("'", "''") + "',";
}
createTableStr_key2 = createTableStr_key2.TrimEnd(',');
createTableStr_value = createTableStr_value.TrimEnd(',');
sqlInert = sqlInert + createTableStr_key2 + ")values(";
sqlInert = sqlInert + createTableStr_value + ")";
cmd.CommandText = sqlInert;
cmd.ExecuteNonQuery();
}
}
isOK = true;
}
catch (Exception)
{
}
finally
{
if (conn.State == ConnectionState.Open)
{
conn.Close();
}
}
}
if (isOK)
{
return "[{ \"result\":\"1\"}]";
}
return "[{ \"result\":\"0\"}]";
}
catch (Exception)
{
return "[{ \"result\":\"0\"}]";
}
}
private static void DropTable(string name)
{
}
private static void CreateTable()
{
}
private static void InsertTable()
{
}
private static void InsertTableStr()
{
}
}

Some files were not shown because too many files have changed in this diff Show More