/
Ioc.xml
212 lines (212 loc) · 11.2 KB
/
Ioc.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
<Type Name="Ioc" FullName="CommunityToolkit.Mvvm.DependencyInjection.Ioc">
<TypeSignature Language="C#" Value="public sealed class Ioc : IServiceProvider" />
<TypeSignature Language="ILAsm" Value=".class public auto ansi sealed beforefieldinit Ioc extends System.Object implements class System.IServiceProvider" />
<TypeSignature Language="DocId" Value="T:CommunityToolkit.Mvvm.DependencyInjection.Ioc" />
<TypeSignature Language="VB.NET" Value="Public NotInheritable Class Ioc
Implements IServiceProvider" />
<TypeSignature Language="F#" Value="type Ioc = class
 interface IServiceProvider" />
<AssemblyInfo>
<AssemblyName>CommunityToolkit.Mvvm</AssemblyName>
<AssemblyVersion>7.0.0.0</AssemblyVersion>
</AssemblyInfo>
<Base>
<BaseTypeName>System.Object</BaseTypeName>
</Base>
<Interfaces>
<Interface>
<InterfaceName>System.IServiceProvider</InterfaceName>
</Interface>
</Interfaces>
<Docs>
<summary>
A type that facilitates the use of the <see cref="T:System.IServiceProvider" /> type.
The <see cref="T:CommunityToolkit.Mvvm.DependencyInjection.Ioc" /> provides the ability to configure services in a singleton, thread-safe
service provider instance, which can then be used to resolve service instances.
The first step to use this feature is to declare some services, for instance:
<code>
public interface ILogger
{
void Log(string text);
}
</code><code>
public class ConsoleLogger : ILogger
{
void Log(string text) => Console.WriteLine(text);
}
</code>
Then the services configuration should then be done at startup, by calling the <see cref="M:CommunityToolkit.Mvvm.DependencyInjection.Ioc.ConfigureServices(System.IServiceProvider)" />
method and passing an <see cref="T:System.IServiceProvider" /> instance with the services to use. That instance can
be from any library offering dependency injection functionality, such as Microsoft.Extensions.DependencyInjection.
For instance, using that library, <see cref="M:CommunityToolkit.Mvvm.DependencyInjection.Ioc.ConfigureServices(System.IServiceProvider)" /> can be used as follows in this example:
<code>
Ioc.Default.ConfigureServices(
new ServiceCollection()
.AddSingleton<ILogger, Logger>()
.BuildServiceProvider());
</code>
Finally, you can use the <see cref="T:CommunityToolkit.Mvvm.DependencyInjection.Ioc" /> instance (which implements <see cref="T:System.IServiceProvider" />)
to retrieve the service instances from anywhere in your application, by doing as follows:
<code>
Ioc.Default.GetService<ILogger>().Log("Hello world!");
</code></summary>
<remarks>To be added.</remarks>
</Docs>
<Members>
<Member MemberName=".ctor">
<MemberSignature Language="C#" Value="public Ioc ();" />
<MemberSignature Language="ILAsm" Value=".method public hidebysig specialname rtspecialname instance void .ctor() cil managed" />
<MemberSignature Language="DocId" Value="M:CommunityToolkit.Mvvm.DependencyInjection.Ioc.#ctor" />
<MemberSignature Language="VB.NET" Value="Public Sub New ()" />
<MemberType>Constructor</MemberType>
<AssemblyInfo>
<AssemblyName>CommunityToolkit.Mvvm</AssemblyName>
<AssemblyVersion>7.0.0.0</AssemblyVersion>
</AssemblyInfo>
<Parameters />
<Docs>
<summary>To be added.</summary>
<remarks>To be added.</remarks>
</Docs>
</Member>
<Member MemberName="ConfigureServices">
<MemberSignature Language="C#" Value="public void ConfigureServices (IServiceProvider serviceProvider);" />
<MemberSignature Language="ILAsm" Value=".method public hidebysig instance void ConfigureServices(class System.IServiceProvider serviceProvider) cil managed" />
<MemberSignature Language="DocId" Value="M:CommunityToolkit.Mvvm.DependencyInjection.Ioc.ConfigureServices(System.IServiceProvider)" />
<MemberSignature Language="VB.NET" Value="Public Sub ConfigureServices (serviceProvider As IServiceProvider)" />
<MemberSignature Language="F#" Value="member this.ConfigureServices : IServiceProvider -> unit" Usage="ioc.ConfigureServices serviceProvider" />
<MemberType>Method</MemberType>
<AssemblyInfo>
<AssemblyName>CommunityToolkit.Mvvm</AssemblyName>
<AssemblyVersion>7.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Void</ReturnType>
</ReturnValue>
<Parameters>
<Parameter Name="serviceProvider" Type="System.IServiceProvider" />
</Parameters>
<Docs>
<param name="serviceProvider">The input <see cref="T:System.IServiceProvider" /> instance to use.</param>
<summary>
Initializes the shared <see cref="T:System.IServiceProvider" /> instance.
</summary>
<remarks>To be added.</remarks>
</Docs>
</Member>
<Member MemberName="Default">
<MemberSignature Language="C#" Value="public static CommunityToolkit.Mvvm.DependencyInjection.Ioc Default { get; }" />
<MemberSignature Language="ILAsm" Value=".property class CommunityToolkit.Mvvm.DependencyInjection.Ioc Default" />
<MemberSignature Language="DocId" Value="P:CommunityToolkit.Mvvm.DependencyInjection.Ioc.Default" />
<MemberSignature Language="VB.NET" Value="Public Shared ReadOnly Property Default As Ioc" />
<MemberSignature Language="F#" Value="static member Default : CommunityToolkit.Mvvm.DependencyInjection.Ioc" Usage="CommunityToolkit.Mvvm.DependencyInjection.Ioc.Default" />
<MemberType>Property</MemberType>
<AssemblyInfo>
<AssemblyName>CommunityToolkit.Mvvm</AssemblyName>
<AssemblyVersion>7.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>CommunityToolkit.Mvvm.DependencyInjection.Ioc</ReturnType>
</ReturnValue>
<Docs>
<summary>
Gets the default <see cref="T:CommunityToolkit.Mvvm.DependencyInjection.Ioc" /> instance.
</summary>
<value>To be added.</value>
<remarks>To be added.</remarks>
</Docs>
</Member>
<Member MemberName="GetRequiredService<T>">
<MemberSignature Language="C#" Value="public T GetRequiredService<T> () where T : class;" />
<MemberSignature Language="ILAsm" Value=".method public hidebysig instance !!T GetRequiredService<class T>() cil managed" />
<MemberSignature Language="DocId" Value="M:CommunityToolkit.Mvvm.DependencyInjection.Ioc.GetRequiredService``1" />
<MemberSignature Language="VB.NET" Value="Public Function GetRequiredService(Of T As Class) () As T" />
<MemberSignature Language="F#" Value="member this.GetRequiredService : unit -> 'T (requires 'T : null)" Usage="ioc.GetRequiredService " />
<MemberType>Method</MemberType>
<AssemblyInfo>
<AssemblyName>CommunityToolkit.Mvvm</AssemblyName>
<AssemblyVersion>7.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>T</ReturnType>
</ReturnValue>
<TypeParameters>
<TypeParameter Name="T">
<Constraints>
<ParameterAttribute>ReferenceTypeConstraint</ParameterAttribute>
</Constraints>
</TypeParameter>
</TypeParameters>
<Parameters />
<Docs>
<typeparam name="T">The type of service to resolve.</typeparam>
<summary>
Resolves an instance of a specified service type.
</summary>
<returns>An instance of the specified service, or <see langword="null" />.</returns>
<remarks>To be added.</remarks>
<exception cref="T:System.InvalidOperationException">
Throw if the current <see cref="T:CommunityToolkit.Mvvm.DependencyInjection.Ioc" /> instance has not been initialized, or if the
requested service type was not registered in the service provider currently in use.
</exception>
</Docs>
</Member>
<Member MemberName="GetService">
<MemberSignature Language="C#" Value="public object? GetService (Type serviceType);" />
<MemberSignature Language="ILAsm" Value=".method public hidebysig newslot virtual instance object GetService(class System.Type serviceType) cil managed" />
<MemberSignature Language="DocId" Value="M:CommunityToolkit.Mvvm.DependencyInjection.Ioc.GetService(System.Type)" />
<MemberSignature Language="VB.NET" Value="Public Function GetService (serviceType As Type) As Object" />
<MemberSignature Language="F#" Value="abstract member GetService : Type -> obj
override this.GetService : Type -> obj" Usage="ioc.GetService serviceType" />
<MemberType>Method</MemberType>
<Implements>
<InterfaceMember>M:System.IServiceProvider.GetService(System.Type)</InterfaceMember>
</Implements>
<AssemblyInfo>
<AssemblyName>CommunityToolkit.Mvvm</AssemblyName>
<AssemblyVersion>7.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Object</ReturnType>
</ReturnValue>
<Parameters>
<Parameter Name="serviceType" Type="System.Type" />
</Parameters>
<Docs>
<param name="serviceType">To be added.</param>
<summary>To be added.</summary>
<returns>To be added.</returns>
<remarks>To be added.</remarks>
</Docs>
</Member>
<Member MemberName="GetService<T>">
<MemberSignature Language="C#" Value="public T? GetService<T> () where T : class;" />
<MemberSignature Language="ILAsm" Value=".method public hidebysig instance !!T GetService<class T>() cil managed" />
<MemberSignature Language="DocId" Value="M:CommunityToolkit.Mvvm.DependencyInjection.Ioc.GetService``1" />
<MemberSignature Language="VB.NET" Value="Public Function GetService(Of T As Class) () As T" />
<MemberSignature Language="F#" Value="member this.GetService : unit -> 'T (requires 'T : null)" Usage="ioc.GetService " />
<MemberType>Method</MemberType>
<AssemblyInfo>
<AssemblyName>CommunityToolkit.Mvvm</AssemblyName>
<AssemblyVersion>7.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>T</ReturnType>
</ReturnValue>
<TypeParameters>
<TypeParameter Name="T">
<Constraints>
<ParameterAttribute>ReferenceTypeConstraint</ParameterAttribute>
</Constraints>
</TypeParameter>
</TypeParameters>
<Parameters />
<Docs>
<typeparam name="T">The type of service to resolve.</typeparam>
<summary>
Tries to resolve an instance of a specified service type.
</summary>
<returns>An instance of the specified service, or <see langword="null" />.</returns>
<remarks>To be added.</remarks>
<exception cref="T:System.InvalidOperationException">Throw if the current <see cref="T:CommunityToolkit.Mvvm.DependencyInjection.Ioc" /> instance has not been initialized.</exception>
</Docs>
</Member>
</Members>
</Type>