unity 1.1.0.0 → 1.2.0.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -4,11 +4,89 @@
4
4
  <name>Microsoft.Practices.ObjectBuilder2</name>
5
5
  </assembly>
6
6
  <members>
7
- <member name="T:Microsoft.Practices.ObjectBuilder2.IBuildPlanPolicy">
7
+ <member name="T:Microsoft.Practices.ObjectBuilder2.Guard">
8
8
  <summary>
9
- A build plan is an object that, when invoked, will create a new object
10
- or fill in a given existing one. It encapsulates all the information
11
- gathered by the strategies to construct a particular object.
9
+ Represents a simple class for validating parameters and throwing exceptions.
10
+ </summary>
11
+ </member>
12
+ <member name="M:Microsoft.Practices.ObjectBuilder2.Guard.ArgumentNotNull(System.Object,System.String)">
13
+ <summary>
14
+ Validates <paramref name="argumentValue"/> is not null and throws <see cref="T:System.ArgumentNullException"/> if it is null.
15
+ </summary>
16
+ <param name="argumentValue">The value to validate.</param>
17
+ <param name="argumentName">The name of <paramref name="argumentValue"/>.</param>
18
+ </member>
19
+ <member name="M:Microsoft.Practices.ObjectBuilder2.Guard.ArgumentNotNullOrEmpty(System.String,System.String)">
20
+ <summary>
21
+ Validates <paramref name="argumentValue"/> is not null or an empty string and throws <see cref="T:System.ArgumentNullException"/> if it is null or an empty string .
22
+ </summary>
23
+ <param name="argumentValue">The value to validate.</param>
24
+ <param name="argumentName">The name of <paramref name="argumentValue"/>.</param>
25
+ </member>
26
+ <member name="T:Microsoft.Practices.ObjectBuilder2.StagedStrategyChain`1">
27
+ <summary>
28
+ Represents a chain of responsibility for builder strategies partitioned by stages.
29
+ </summary>
30
+ <typeparam name="TStageEnum">The stage enumeration to partition the strategies.</typeparam>
31
+ </member>
32
+ <member name="T:Microsoft.Practices.ObjectBuilder2.IStagedStrategyChain">
33
+ <summary>
34
+ This interface defines a standard method to convert any
35
+ <see cref="T:Microsoft.Practices.ObjectBuilder2.StagedStrategyChain`1"/> regardless
36
+ of the stage enum into a regular, flat strategy chain.
37
+ </summary>
38
+ </member>
39
+ <member name="M:Microsoft.Practices.ObjectBuilder2.IStagedStrategyChain.MakeStrategyChain">
40
+ <summary>
41
+ Convert this <see cref="T:Microsoft.Practices.ObjectBuilder2.StagedStrategyChain`1"/> into
42
+ a flat <see cref="T:Microsoft.Practices.ObjectBuilder2.IStrategyChain"/>.
43
+ </summary>
44
+ <returns>The flattened <see cref="T:Microsoft.Practices.ObjectBuilder2.IStrategyChain"/>.</returns>
45
+ </member>
46
+ <member name="M:Microsoft.Practices.ObjectBuilder2.StagedStrategyChain`1.#ctor">
47
+ <summary>
48
+ Initialize a new instance of the <see cref="T:Microsoft.Practices.ObjectBuilder2.StagedStrategyChain`1"/> class.
49
+ </summary>
50
+ </member>
51
+ <member name="M:Microsoft.Practices.ObjectBuilder2.StagedStrategyChain`1.#ctor(Microsoft.Practices.ObjectBuilder2.StagedStrategyChain{`0})">
52
+ <summary>
53
+ Initialize a new instance of the <see cref="T:Microsoft.Practices.ObjectBuilder2.StagedStrategyChain`1"/> class with an inner strategy chain to use when building.
54
+ </summary>
55
+ <param name="innerChain">The inner strategy chain to use first when finding strategies in the build operation.</param>
56
+ </member>
57
+ <member name="M:Microsoft.Practices.ObjectBuilder2.StagedStrategyChain`1.Add(Microsoft.Practices.ObjectBuilder2.IBuilderStrategy,`0)">
58
+ <summary>
59
+ Adds a strategy to the chain at a particular stage.
60
+ </summary>
61
+ <param name="strategy">The strategy to add to the chain.</param>
62
+ <param name="stage">The stage to add the strategy.</param>
63
+ </member>
64
+ <member name="M:Microsoft.Practices.ObjectBuilder2.StagedStrategyChain`1.AddNew``1(`0)">
65
+ <summary>
66
+ Add a new strategy for the <paramref name="stage"/>.
67
+ </summary>
68
+ <typeparam name="TStrategy">The <see cref="T:System.Type"/> of <see cref="T:Microsoft.Practices.ObjectBuilder2.IBuilderStrategy"/></typeparam>
69
+ <param name="stage">The stage to add the strategy.</param>
70
+ </member>
71
+ <member name="M:Microsoft.Practices.ObjectBuilder2.StagedStrategyChain`1.Clear">
72
+ <summary>
73
+ Clear the current strategy chain list.
74
+ </summary>
75
+ <remarks>
76
+ This will not clear the inner strategy chain if this instane was created with one.
77
+ </remarks>
78
+ </member>
79
+ <member name="M:Microsoft.Practices.ObjectBuilder2.StagedStrategyChain`1.MakeStrategyChain">
80
+ <summary>
81
+ Makes a strategy chain based on this instance.
82
+ </summary>
83
+ <returns>A new <see cref="T:Microsoft.Practices.ObjectBuilder2.StrategyChain"/>.</returns>
84
+ </member>
85
+ <member name="T:Microsoft.Practices.ObjectBuilder2.ILifetimePolicy">
86
+ <summary>
87
+ A <see cref="T:Microsoft.Practices.ObjectBuilder2.IBuilderPolicy"/> that controls how instances are
88
+ persisted and recovered from an external store. Used to implement
89
+ things like singletons and per-http-request lifetime.
12
90
  </summary>
13
91
  </member>
14
92
  <member name="T:Microsoft.Practices.ObjectBuilder2.IBuilderPolicy">
@@ -18,12 +96,22 @@
18
96
  policy interfaces.
19
97
  </summary>
20
98
  </member>
21
- <member name="M:Microsoft.Practices.ObjectBuilder2.IBuildPlanPolicy.BuildUp(Microsoft.Practices.ObjectBuilder2.IBuilderContext)">
99
+ <member name="M:Microsoft.Practices.ObjectBuilder2.ILifetimePolicy.GetValue">
22
100
  <summary>
23
- Creates an instance of this build plan's type, or fills
24
- in the existing type if passed in.
101
+ Retrieve a value from the backing store associated with this Lifetime policy.
102
+ </summary>
103
+ <returns>the object desired, or null if no such object is currently stored.</returns>
104
+ </member>
105
+ <member name="M:Microsoft.Practices.ObjectBuilder2.ILifetimePolicy.SetValue(System.Object)">
106
+ <summary>
107
+ Stores the given value into backing store for retrieval later.
108
+ </summary>
109
+ <param name="newValue">The object to store.</param>
110
+ </member>
111
+ <member name="M:Microsoft.Practices.ObjectBuilder2.ILifetimePolicy.RemoveValue">
112
+ <summary>
113
+ Remove the value this lifetime policy is managing from backing store.
25
114
  </summary>
26
- <param name="context">Context used to build up the object.</param>
27
115
  </member>
28
116
  <member name="T:Microsoft.Practices.ObjectBuilder2.DynamicMethodPropertySetterStrategy">
29
117
  <summary>
@@ -125,94 +213,95 @@
125
213
  <param name="inner">The actual exception that caused the resolution to fail.</param>
126
214
  <param name="propertyName">Name of the property that didn't resolve.</param>
127
215
  </member>
128
- <member name="T:Microsoft.Practices.ObjectBuilder2.DynamicBuildPlanGenerationContext">
216
+ <member name="T:Microsoft.Practices.ObjectBuilder2.IDynamicBuilderMethodCreatorPolicy">
129
217
  <summary>
130
- This object tracks the current state of the build plan generation,
131
- accumulates the IL, provides the preamble &amp; postamble for the dynamic
132
- method, and tracks things like local variables in the generated IL
133
- so that they can be reused across IL generation strategies.
218
+ This interface defines a policy that manages creation of the dynamic methods
219
+ used by the ObjectBuilder code generation. This way, we can replace the details
220
+ of how the dynamic method is created to handle differences in CLR (like Silverlight
221
+ vs desktop) or security policies.
134
222
  </summary>
135
223
  </member>
136
- <member name="M:Microsoft.Practices.ObjectBuilder2.DynamicBuildPlanGenerationContext.#ctor(System.Type)">
224
+ <member name="M:Microsoft.Practices.ObjectBuilder2.IDynamicBuilderMethodCreatorPolicy.CreateBuilderMethod(System.Type,System.String)">
137
225
  <summary>
138
- Create a <see cref="T:Microsoft.Practices.ObjectBuilder2.DynamicBuildPlanGenerationContext"/> that is initialized
139
- to handle creation of a dynamic method to build the given type.
226
+ Create a builder method for the given type, using the given name.
140
227
  </summary>
141
- <param name="typeToBuild">Type that we're trying to create a build plan for.</param>
228
+ <param name="typeToBuild">Type that will be built by the generated method.</param>
229
+ <param name="methodName">Name to give to the method.</param>
230
+ <returns>A <see cref="T:System.Reflection.Emit.DynamicMethod"/> object with the proper signature to use
231
+ as part of a build plan.</returns>
142
232
  </member>
143
- <member name="M:Microsoft.Practices.ObjectBuilder2.DynamicBuildPlanGenerationContext.GetBuildMethod">
233
+ <member name="T:Microsoft.Practices.ObjectBuilder2.BuildKeyMappingPolicy">
144
234
  <summary>
145
- Completes generation of the dynamic method and returns the
146
- generated dynamic method delegate.
235
+ Represents a builder policy for mapping build keys.
147
236
  </summary>
148
- <returns>The created <see cref="T:Microsoft.Practices.ObjectBuilder2.DynamicBuildPlanMethod"/></returns>
149
237
  </member>
150
- <member name="M:Microsoft.Practices.ObjectBuilder2.DynamicBuildPlanGenerationContext.EmitLoadContext">
238
+ <member name="T:Microsoft.Practices.ObjectBuilder2.IBuildKeyMappingPolicy">
151
239
  <summary>
152
- Emit the IL to put the build context on top of the IL stack.
240
+ Represents a builder policy for mapping build keys.
153
241
  </summary>
154
242
  </member>
155
- <member name="M:Microsoft.Practices.ObjectBuilder2.DynamicBuildPlanGenerationContext.EmitLoadBuildKey">
243
+ <member name="M:Microsoft.Practices.ObjectBuilder2.IBuildKeyMappingPolicy.Map(System.Object)">
156
244
  <summary>
157
- Emit the IL to put the current build key on top of the IL stack.
245
+ Maps the build key.
158
246
  </summary>
247
+ <param name="buildKey">The build key to map.</param>
248
+ <returns>The new build key.</returns>
159
249
  </member>
160
- <member name="M:Microsoft.Practices.ObjectBuilder2.DynamicBuildPlanGenerationContext.EmitLoadExisting">
250
+ <member name="M:Microsoft.Practices.ObjectBuilder2.BuildKeyMappingPolicy.#ctor(System.Object)">
161
251
  <summary>
162
- Emit the IL to put the current "existing" object on the top of the IL stack.
252
+ Initialize a new instance of the <see cref="T:Microsoft.Practices.ObjectBuilder2.BuildKeyMappingPolicy"/> with the new build key.
163
253
  </summary>
254
+ <param name="newBuildKey"></param>
164
255
  </member>
165
- <member name="M:Microsoft.Practices.ObjectBuilder2.DynamicBuildPlanGenerationContext.EmitStoreExisting">
256
+ <member name="M:Microsoft.Practices.ObjectBuilder2.BuildKeyMappingPolicy.Map(System.Object)">
166
257
  <summary>
167
- Emit the IL to make the top of the IL stack our current "existing" object.
258
+ Map the <paramref name="buildKey"/> to a new build key.
168
259
  </summary>
260
+ <param name="buildKey">The build key to mapl</param>
261
+ <returns>The new build key.</returns>
169
262
  </member>
170
- <member name="M:Microsoft.Practices.ObjectBuilder2.DynamicBuildPlanGenerationContext.EmitLoadTypeOnStack(System.Type)">
263
+ <member name="T:Microsoft.Practices.ObjectBuilder2.LifetimeStrategy">
171
264
  <summary>
172
- Emit the IL to load the given <see cref="T:System.Type"/> object onto the top of the IL stack.
265
+ An <see cref="T:Microsoft.Practices.ObjectBuilder2.IBuilderStrategy"/> implementation that uses
266
+ a <see cref="T:Microsoft.Practices.ObjectBuilder2.ILifetimePolicy"/> to figure out if an object
267
+ has already been created and to update or remove that
268
+ object from some backing store.
173
269
  </summary>
174
- <param name="t">Type to load on the stack.</param>
175
270
  </member>
176
- <member name="M:Microsoft.Practices.ObjectBuilder2.DynamicBuildPlanGenerationContext.EmitResolveDependency(System.Type,System.String)">
271
+ <member name="M:Microsoft.Practices.ObjectBuilder2.LifetimeStrategy.PreBuildUp(Microsoft.Practices.ObjectBuilder2.IBuilderContext)">
177
272
  <summary>
178
- Emit the IL needed to look up an <see cref="T:Microsoft.Practices.ObjectBuilder2.IDependencyResolverPolicy"/> and
179
- call it to get a value.
273
+ Called during the chain of responsibility for a build operation. The
274
+ PreBuildUp method is called when the chain is being executed in the
275
+ forward direction.
180
276
  </summary>
181
- <param name="dependencyType">Type of the dependency to resolve.</param>
182
- <param name="key">Key to look up the policy by.</param>
277
+ <param name="context">Context of the build operation.</param>
183
278
  </member>
184
- <member name="M:Microsoft.Practices.ObjectBuilder2.DynamicBuildPlanGenerationContext.GetPropertyGetter``2(System.String)">
279
+ <member name="M:Microsoft.Practices.ObjectBuilder2.LifetimeStrategy.PostBuildUp(Microsoft.Practices.ObjectBuilder2.IBuilderContext)">
185
280
  <summary>
186
- A reflection helper method to make it easier to grab a property getter
187
- <see cref="T:System.Reflection.MethodInfo"/> for the given property.
281
+ Called during the chain of responsibility for a build operation. The
282
+ PostBuildUp method is called when the chain has finished the PreBuildUp
283
+ phase and executes in reverse order from the PreBuildUp calls.
188
284
  </summary>
189
- <typeparam name="TImplementor">Type that implements the property we want.</typeparam>
190
- <typeparam name="TProperty">Type of the property.</typeparam>
191
- <param name="name">Name of the property.</param>
192
- <returns>The property getter's <see cref="T:System.Reflection.MethodInfo"/>.</returns>
285
+ <param name="context">Context of the build operation.</param>
193
286
  </member>
194
- <member name="M:Microsoft.Practices.ObjectBuilder2.DynamicBuildPlanGenerationContext.GetMethodInfo``1(System.String,System.Type[])">
287
+ <member name="T:Microsoft.Practices.ObjectBuilder2.IBuildPlanPolicy">
195
288
  <summary>
196
- A reflection helper method that makes it easier to grab a <see cref="T:System.Reflection.MethodInfo"/>
197
- for a method.
289
+ A build plan is an object that, when invoked, will create a new object
290
+ or fill in a given existing one. It encapsulates all the information
291
+ gathered by the strategies to construct a particular object.
198
292
  </summary>
199
- <typeparam name="TImplementor">Type that implements the method we want.</typeparam>
200
- <param name="name">Name of the method.</param>
201
- <param name="argumentTypes">Types of arguments to the method.</param>
202
- <returns>The method's <see cref="T:System.Reflection.MethodInfo"/>.</returns>
203
293
  </member>
204
- <member name="P:Microsoft.Practices.ObjectBuilder2.DynamicBuildPlanGenerationContext.IL">
294
+ <member name="M:Microsoft.Practices.ObjectBuilder2.IBuildPlanPolicy.BuildUp(Microsoft.Practices.ObjectBuilder2.IBuilderContext)">
205
295
  <summary>
206
- The underlying <see cref="T:System.Reflection.Emit.ILGenerator"/> that can be used to
207
- emit IL into the generated dynamic method.
296
+ Creates an instance of this build plan's type, or fills
297
+ in the existing type if passed in.
208
298
  </summary>
299
+ <param name="context">Context used to build up the object.</param>
209
300
  </member>
210
- <member name="P:Microsoft.Practices.ObjectBuilder2.DynamicBuildPlanGenerationContext.TypeToBuild">
301
+ <member name="T:Microsoft.Practices.ObjectBuilder2.DependencyMissingException">
211
302
  <summary>
212
- The type we're currently creating the method to build.
303
+ Represents that a dependency could not be resolved.
213
304
  </summary>
214
- </member>
215
- <member name="T:Microsoft.Practices.ObjectBuilder2.DependencyMissingException">
216
305
  <summary>
217
306
  Represents that a dependency could not be resolved.
218
307
  </summary>
@@ -249,178 +338,96 @@
249
338
  <param name="info">The <see cref="T:System.Runtime.Serialization.SerializationInfo"/> that holds the serialized object data about the exception being thrown.</param>
250
339
  <param name="context">The <see cref="T:System.Runtime.Serialization.StreamingContext"/> that contains contextual information about the source or destination. </param>
251
340
  </member>
252
- <member name="T:Microsoft.Practices.ObjectBuilder2.PropertySelectorBase`1">
341
+ <member name="T:Microsoft.Practices.ObjectBuilder2.BuildFailedException">
253
342
  <summary>
254
- Base class that provides an implementation of <see cref="T:Microsoft.Practices.ObjectBuilder2.IPropertySelectorPolicy"/>
255
- which lets you override how the parameter resolvers are created.
343
+ The exception that gets thrown if a build or teardown operation fails.
256
344
  </summary>
257
345
  </member>
258
- <member name="T:Microsoft.Practices.ObjectBuilder2.IPropertySelectorPolicy">
346
+ <member name="M:Microsoft.Practices.ObjectBuilder2.BuildFailedException.#ctor(Microsoft.Practices.ObjectBuilder2.IBuilderStrategy,System.Int32,System.Object,System.Exception)">
259
347
  <summary>
260
- An <see cref="T:Microsoft.Practices.ObjectBuilder2.IBuilderPolicy"/> that returns a sequence
261
- of properties that should be injected for the given type.
348
+ Create a new <see cref="T:Microsoft.Practices.ObjectBuilder2.BuildFailedException"/> instance containing
349
+ the information about the currently executing strategy that caused
350
+ the exception.
262
351
  </summary>
352
+ <param name="executingStrategy">The <see cref="T:Microsoft.Practices.ObjectBuilder2.IBuilderStrategy"/> that was
353
+ executing at the time the exception was thrown.</param>
354
+ <param name="executingStrategyIndex">The index of the current strategy in its
355
+ strategy chain.</param>
356
+ <param name="buildKey">The build key being built up.</param>
357
+ <param name="innerException">Underlying exception.</param>
263
358
  </member>
264
- <member name="M:Microsoft.Practices.ObjectBuilder2.IPropertySelectorPolicy.SelectProperties(Microsoft.Practices.ObjectBuilder2.IBuilderContext)">
359
+ <member name="M:Microsoft.Practices.ObjectBuilder2.BuildFailedException.#ctor">
265
360
  <summary>
266
- Returns sequence of properties on the given type that
267
- should be set as part of building that object.
361
+ Create a new <see cref="T:Microsoft.Practices.ObjectBuilder2.BuildFailedException"/>. Do not use this constructor, it
362
+ does not take any of the data that makes this type useful.
268
363
  </summary>
269
- <param name="context">Current build context.</param>
270
- <returns>Sequence of <see cref="T:System.Reflection.PropertyInfo"/> objects
271
- that contain the properties to set.</returns>
272
364
  </member>
273
- <member name="M:Microsoft.Practices.ObjectBuilder2.PropertySelectorBase`1.SelectProperties(Microsoft.Practices.ObjectBuilder2.IBuilderContext)">
365
+ <member name="M:Microsoft.Practices.ObjectBuilder2.BuildFailedException.#ctor(System.String)">
274
366
  <summary>
275
- Returns sequence of properties on the given type that
276
- should be set as part of building that object.
367
+ Create a new <see cref="T:Microsoft.Practices.ObjectBuilder2.BuildFailedException"/>. Do not use this constructor, it
368
+ does not take any of the data that makes this type useful.
277
369
  </summary>
278
- <param name="context">current build context.</param>
279
- <returns>Sequence of <see cref="T:System.Reflection.PropertyInfo"/> objects
280
- that contain the properties to set.</returns>
370
+ <param name="message">Error message, ignored.</param>
281
371
  </member>
282
- <member name="M:Microsoft.Practices.ObjectBuilder2.PropertySelectorBase`1.CreateResolver(System.Reflection.PropertyInfo)">
372
+ <member name="M:Microsoft.Practices.ObjectBuilder2.BuildFailedException.#ctor(System.String,System.Exception)">
283
373
  <summary>
284
- Create a <see cref="T:Microsoft.Practices.ObjectBuilder2.IDependencyResolverPolicy"/> for the given
285
- property.
374
+ Create a new <see cref="T:Microsoft.Practices.ObjectBuilder2.BuildFailedException"/>. Do not use this constructor, it
375
+ does not take any of the data that makes this type useful.
286
376
  </summary>
287
- <param name="property">Property to create resolver for.</param>
288
- <returns>The resolver object.</returns>
377
+ <param name="message">Error message, ignored.</param>
378
+ <param name="innerException">Inner exception.</param>
289
379
  </member>
290
- <member name="T:Microsoft.Practices.ObjectBuilder2.SelectedMemberWithParameters">
380
+ <member name="M:Microsoft.Practices.ObjectBuilder2.BuildFailedException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
291
381
  <summary>
292
- Base class for return of selector policies that need
293
- to keep track of a set of parameter keys.
382
+ Create a new <see cref="T:Microsoft.Practices.ObjectBuilder2.BuildFailedException"/> from the serialized information.
294
383
  </summary>
384
+ <param name="info">Serialization info.</param>
385
+ <param name="context">Streaming context.</param>
295
386
  </member>
296
- <member name="M:Microsoft.Practices.ObjectBuilder2.SelectedMemberWithParameters.AddParameterKey(System.String)">
387
+ <member name="M:Microsoft.Practices.ObjectBuilder2.BuildFailedException.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
297
388
  <summary>
298
- Add a new parameter key to this object. Keys are assumed
299
- to be in the order of the parameters to the constructor.
300
- </summary>
301
- <param name="newKey">Key for the next parameter to look up.</param>
302
- </member>
303
- <member name="M:Microsoft.Practices.ObjectBuilder2.SelectedMemberWithParameters.GetParameterKeys">
304
- <summary>
305
- The set of keys for the constructor parameters.
306
- </summary>
307
- </member>
308
- <member name="T:Microsoft.Practices.ObjectBuilder2.SelectedMemberWithParameters`1">
309
- <summary>
310
- Base class for return values from selector policies that
311
- return a memberinfo of some sort plus a list of parameter
312
- keys to look up the parameter resolvers.
313
- </summary>
314
- </member>
315
- <member name="M:Microsoft.Practices.ObjectBuilder2.SelectedMemberWithParameters`1.#ctor(`0)">
316
- <summary>
317
- Construct a new <see cref="T:Microsoft.Practices.ObjectBuilder2.SelectedMemberWithParameters`1"/>, storing
318
- the given member info.
319
- </summary>
320
- <param name="memberInfo">Member info to store.</param>
321
- </member>
322
- <member name="P:Microsoft.Practices.ObjectBuilder2.SelectedMemberWithParameters`1.MemberInfo">
323
- <summary>
324
- The member info stored.
325
- </summary>
326
- </member>
327
- <member name="T:Microsoft.Practices.ObjectBuilder2.SelectedConstructor">
328
- <summary>
329
- Objects of this type are the return value from <see cref="M:Microsoft.Practices.ObjectBuilder2.IConstructorSelectorPolicy.SelectConstructor(Microsoft.Practices.ObjectBuilder2.IBuilderContext)"/>.
330
- It encapsulates the desired <see cref="T:System.Reflection.ConstructorInfo"/> with the string keys
331
- needed to look up the <see cref="T:Microsoft.Practices.ObjectBuilder2.IDependencyResolverPolicy"/> for each
332
- parameter.
333
- </summary>
334
- </member>
335
- <member name="M:Microsoft.Practices.ObjectBuilder2.SelectedConstructor.#ctor(System.Reflection.ConstructorInfo)">
336
- <summary>
337
- Create a new <see cref="T:Microsoft.Practices.ObjectBuilder2.SelectedConstructor"/> instance which
338
- contains the given constructor.
339
- </summary>
340
- <param name="constructor"></param>
341
- </member>
342
- <member name="P:Microsoft.Practices.ObjectBuilder2.SelectedConstructor.Constructor">
343
- <summary>
344
- The constructor this object wraps.
345
- </summary>
346
- </member>
347
- <member name="T:Microsoft.Practices.ObjectBuilder2.ConstructorSelectorPolicy`1">
348
- <summary>
349
- An implementation of <see cref="T:Microsoft.Practices.ObjectBuilder2.IConstructorSelectorPolicy"/> that chooses
350
- constructors based on these criteria: first, pick a constructor marked with the
351
- <typeparamref name="TInjectionConstructorMarkerAttribute"/> attribute. If there
352
- isn't one, then choose the constructor with the longest parameter list. If that is ambiguous,
353
- then throw.
354
- </summary>
355
- <exception cref="T:System.InvalidOperationException">Thrown when the constructor to choose is ambiguous.</exception>
356
- <typeparam name="TInjectionConstructorMarkerAttribute">Attribute used to mark the constructor to call.</typeparam>
357
- </member>
358
- <member name="T:Microsoft.Practices.ObjectBuilder2.ConstructorSelectorPolicyBase`1">
359
- <summary>
360
- Base class that provides an implementation of <see cref="T:Microsoft.Practices.ObjectBuilder2.IConstructorSelectorPolicy"/>
361
- which lets you override how the parameter resolvers are created.
389
+ When overridden in a derived class, sets the <see cref="T:System.Runtime.Serialization.SerializationInfo"></see> with information about the exception.
362
390
  </summary>
391
+
392
+ <param name="context">The <see cref="T:System.Runtime.Serialization.StreamingContext"></see> that contains contextual information about the source or destination. </param>
393
+ <param name="info">The <see cref="T:System.Runtime.Serialization.SerializationInfo"></see> that holds the serialized object data about the exception being thrown. </param>
394
+ <exception cref="T:System.ArgumentNullException">The info parameter is a null reference (Nothing in Visual Basic). </exception><filterpriority>2</filterpriority><PermissionSet><IPermission class="System.Security.Permissions.FileIOPermission, mscorlib, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" version="1" Read="*AllFiles*" PathDiscovery="*AllFiles*" /><IPermission class="System.Security.Permissions.SecurityPermission, mscorlib, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" version="1" Flags="SerializationFormatter" /></PermissionSet>
363
395
  </member>
364
- <member name="T:Microsoft.Practices.ObjectBuilder2.IConstructorSelectorPolicy">
396
+ <member name="P:Microsoft.Practices.ObjectBuilder2.BuildFailedException.ExecutingStrategyTypeName">
365
397
  <summary>
366
- A <see cref="T:Microsoft.Practices.ObjectBuilder2.IBuilderPolicy"/> that, when implemented,
367
- will determine which constructor to call from the build plan.
398
+ The strategy that was executing when the exception occurred.
368
399
  </summary>
369
400
  </member>
370
- <member name="M:Microsoft.Practices.ObjectBuilder2.IConstructorSelectorPolicy.SelectConstructor(Microsoft.Practices.ObjectBuilder2.IBuilderContext)">
401
+ <member name="P:Microsoft.Practices.ObjectBuilder2.BuildFailedException.ExecutingStrategyIndex">
371
402
  <summary>
372
- Choose the constructor to call for the given type.
403
+ The index of the currently executing strategy in the build chain.
373
404
  </summary>
374
- <param name="context">Current build context</param>
375
- <returns>The chosen constructor.</returns>
376
- </member>
377
- <member name="M:Microsoft.Practices.ObjectBuilder2.ConstructorSelectorPolicyBase`1.SelectConstructor(Microsoft.Practices.ObjectBuilder2.IBuilderContext)">
378
- <summary>
379
- Choose the constructor to call for the given type.
380
- </summary>
381
- <param name="context">Current build context.</param>
382
- <returns>The chosen constructor.</returns>
383
- <exception cref="T:System.InvalidOperationException">Thrown when the constructor to choose is ambiguous.</exception>
384
405
  </member>
385
- <member name="M:Microsoft.Practices.ObjectBuilder2.ConstructorSelectorPolicyBase`1.CreateResolver(System.Reflection.ParameterInfo)">
406
+ <member name="P:Microsoft.Practices.ObjectBuilder2.BuildFailedException.BuildKey">
386
407
  <summary>
387
- Create a <see cref="T:Microsoft.Practices.ObjectBuilder2.IDependencyResolverPolicy"/> instance for the given
388
- <see cref="T:System.Reflection.ParameterInfo"/>.
408
+ The build key that was being built at the time of the exception.
389
409
  </summary>
390
- <param name="param">Parameter to create the resolver for.</param>
391
- <returns>The resolver object.</returns>
392
410
  </member>
393
- <member name="M:Microsoft.Practices.ObjectBuilder2.ConstructorSelectorPolicyBase`1.ConstructorLengthComparer.Compare(System.Reflection.ConstructorInfo,System.Reflection.ConstructorInfo)">
411
+ <member name="P:Microsoft.Practices.ObjectBuilder2.BuildFailedException.Message">
394
412
  <summary>
395
- Compares two objects and returns a value indicating whether one is less than, equal to, or greater than the other.
413
+ Gets a message that describes the current exception.
396
414
  </summary>
397
415
 
398
416
  <returns>
399
- Value Condition Less than zerox is less than y.Zerox equals y.Greater than zerox is greater than y.
417
+ The error message that explains the reason for the exception, or an empty string("").
400
418
  </returns>
401
-
402
- <param name="y">The second object to compare.</param>
403
- <param name="x">The first object to compare.</param>
404
- </member>
405
- <member name="M:Microsoft.Practices.ObjectBuilder2.ConstructorSelectorPolicy`1.CreateResolver(System.Reflection.ParameterInfo)">
406
- <summary>
407
- Create a <see cref="T:Microsoft.Practices.ObjectBuilder2.IDependencyResolverPolicy"/> instance for the given
408
- <see cref="T:System.Reflection.ParameterInfo"/>.
409
- </summary>
410
- <param name="param">Parameter to create the resolver for.</param>
411
- <returns>The resolver object.</returns>
419
+ <filterpriority>1</filterpriority>
412
420
  </member>
413
- <member name="T:Microsoft.Practices.ObjectBuilder2.IBuildKeyMappingPolicy">
421
+ <member name="T:Microsoft.Practices.ObjectBuilder2.ReadOnlyLocator">
414
422
  <summary>
415
- Represents a builder policy for mapping build keys.
423
+ An implementation of <see cref="T:Microsoft.Practices.ObjectBuilder2.IReadableLocator"/> that wraps an existing locator
424
+ to ensure items are not written into the locator.
416
425
  </summary>
417
426
  </member>
418
- <member name="M:Microsoft.Practices.ObjectBuilder2.IBuildKeyMappingPolicy.Map(System.Object)">
427
+ <member name="T:Microsoft.Practices.ObjectBuilder2.ReadableLocator">
419
428
  <summary>
420
- Maps the build key.
429
+ Represents an abstract implementation of <see cref="T:Microsoft.Practices.ObjectBuilder2.IReadableLocator"/>.
421
430
  </summary>
422
- <param name="buildKey">The build key to map.</param>
423
- <returns>The new build key.</returns>
424
431
  </member>
425
432
  <member name="T:Microsoft.Practices.ObjectBuilder2.IReadableLocator">
426
433
  <summary>
@@ -503,843 +510,956 @@
503
510
  true if the locator is read-only; otherwise, false.
504
511
  </value>
505
512
  </member>
506
- <member name="T:Microsoft.Practices.ObjectBuilder2.NamedTypeBuildKey">
513
+ <member name="M:Microsoft.Practices.ObjectBuilder2.ReadableLocator.#ctor">
507
514
  <summary>
508
- Build key used to combine a type object with a string name. Used by
509
- ObjectBuilder to indicate exactly what is being built.
515
+ Initialize a new instance of the <see cref="T:Microsoft.Practices.ObjectBuilder2.ReadableLocator"/> class.
510
516
  </summary>
511
517
  </member>
512
- <member name="T:Microsoft.Practices.ObjectBuilder2.IBuildKey">
518
+ <member name="M:Microsoft.Practices.ObjectBuilder2.ReadableLocator.#ctor(Microsoft.Practices.ObjectBuilder2.IReadableLocator)">
513
519
  <summary>
514
- Represents a build key based on type.
520
+ Initialize a new instance of the <see cref="T:Microsoft.Practices.ObjectBuilder2.ReadableLocator"/> class with a parent <see cref="T:Microsoft.Practices.ObjectBuilder2.IReadableLocator"/>.
515
521
  </summary>
522
+ <param name="parentLocator">A parent <see cref="T:Microsoft.Practices.ObjectBuilder2.IReadableLocator"/>.</param>
516
523
  </member>
517
- <member name="M:Microsoft.Practices.ObjectBuilder2.IBuildKey.ReplaceType(System.Type)">
524
+ <member name="M:Microsoft.Practices.ObjectBuilder2.ReadableLocator.Contains(System.Object)">
518
525
  <summary>
519
- Construct a new build key object with the current type
520
- replaced with the specified <paramref name="newType"/>.
526
+ Determine if the locator contains an object for the given key.
521
527
  </summary>
522
- <remarks>This method creates a new build key object, the original is unchanged.</remarks>
523
- <param name="newType">New type to place in the build key.</param>
524
- <returns>The new build key.</returns>
528
+ <param name="key">The key to check.</param>
529
+ <returns>
530
+ true if the locator contains an object for the key; returns
531
+ false otherwise.
532
+ </returns>
525
533
  </member>
526
- <member name="P:Microsoft.Practices.ObjectBuilder2.IBuildKey.Type">
534
+ <member name="M:Microsoft.Practices.ObjectBuilder2.ReadableLocator.FindBy(System.Predicate{System.Collections.Generic.KeyValuePair{System.Object,System.Object}})">
527
535
  <summary>
528
- Gets the <see cref="P:Microsoft.Practices.ObjectBuilder2.IBuildKey.Type"/> that represents the key.
536
+ Finds objects in the locator using the predicate, and returns a temporary locator
537
+ filled with the found objects.
529
538
  </summary>
530
- <value>
531
- The <see cref="P:Microsoft.Practices.ObjectBuilder2.IBuildKey.Type"/> that represents the key.
532
- </value>
539
+ <param name="predicate">The predicate to test whether to include an object.</param>
540
+ <returns>The new locator</returns>
541
+ <exception cref="T:System.ArgumentNullException">Predicate is null.</exception>
533
542
  </member>
534
- <member name="M:Microsoft.Practices.ObjectBuilder2.NamedTypeBuildKey.#ctor(System.Type,System.String)">
543
+ <member name="M:Microsoft.Practices.ObjectBuilder2.ReadableLocator.Get``1">
535
544
  <summary>
536
- Create a new <see cref="T:Microsoft.Practices.ObjectBuilder2.NamedTypeBuildKey"/> instance with the given
537
- type and name.
545
+ Gets an object from the locator, registered with the key of typeof(T).
538
546
  </summary>
539
- <param name="type"><see cref="P:Microsoft.Practices.ObjectBuilder2.NamedTypeBuildKey.Type"/> to build.</param>
540
- <param name="name">Key to use to look up type mappings and singletons.</param>
547
+ <typeparam name="TItem">The type of the object to find.</typeparam>
548
+ <returns>The object, if found; null otherwise.</returns>
541
549
  </member>
542
- <member name="M:Microsoft.Practices.ObjectBuilder2.NamedTypeBuildKey.#ctor(System.Type)">
550
+ <member name="M:Microsoft.Practices.ObjectBuilder2.ReadableLocator.Get``1(System.Object)">
543
551
  <summary>
544
- Create a new <see cref="T:Microsoft.Practices.ObjectBuilder2.NamedTypeBuildKey"/> instance for the default
545
- buildup of the given type.
552
+ Gets an object from the locator, registered with the given key.
546
553
  </summary>
547
- <param name="type"><see cref="P:Microsoft.Practices.ObjectBuilder2.NamedTypeBuildKey.Type"/> to build.</param>
554
+ <typeparam name="TItem">The type of the object to find.</typeparam>
555
+ <param name="key">The key that the object is registered with.</param>
556
+ <returns>The object, if found; null otherwise.</returns>
557
+ <exception cref="T:System.ArgumentNullException"><paramref name="key"/> is null.</exception>
548
558
  </member>
549
- <member name="M:Microsoft.Practices.ObjectBuilder2.NamedTypeBuildKey.Make``1">
559
+ <member name="M:Microsoft.Practices.ObjectBuilder2.ReadableLocator.Get(System.Object)">
550
560
  <summary>
551
- This helper method creates a new <see cref="T:Microsoft.Practices.ObjectBuilder2.NamedTypeBuildKey"/> instance. It is
552
- initialized for the default key for the given type.
561
+ Gets an object from the locator, registered with the given key.
553
562
  </summary>
554
- <typeparam name="T">Type to build.</typeparam>
555
- <returns>A new <see cref="T:Microsoft.Practices.ObjectBuilder2.NamedTypeBuildKey"/> instance.</returns>
563
+ <param name="key">The key that the object is registered with.</param>
564
+ <returns>The object, if found; null otherwise.</returns>
565
+ <exception cref="T:System.ArgumentNullException">Key is null.</exception>
556
566
  </member>
557
- <member name="M:Microsoft.Practices.ObjectBuilder2.NamedTypeBuildKey.Make``1(System.String)">
567
+ <member name="M:Microsoft.Practices.ObjectBuilder2.ReadableLocator.GetEnumerator">
558
568
  <summary>
559
- This helper method creates a new <see cref="T:Microsoft.Practices.ObjectBuilder2.NamedTypeBuildKey"/> instance for
560
- the given type and key.
569
+ Returns an enumerator that iterates through the locator.
561
570
  </summary>
562
- <typeparam name="T">Type to build</typeparam>
563
- <param name="name">Key to use to look up type mappings and singletons.</param>
564
- <returns>A new <see cref="T:Microsoft.Practices.ObjectBuilder2.NamedTypeBuildKey"/> instance initialized with the given type and name.</returns>
571
+ <returns>
572
+ An <see cref="T:System.Collections.IEnumerator"/> object that can be used to iterate through the locator.
573
+ </returns>
565
574
  </member>
566
- <member name="M:Microsoft.Practices.ObjectBuilder2.NamedTypeBuildKey.ReplaceType(System.Type)">
575
+ <member name="M:Microsoft.Practices.ObjectBuilder2.ReadableLocator.System#Collections#IEnumerable#GetEnumerator">
567
576
  <summary>
568
- Construct a new build key object with the current type
569
- replaced with the specified <paramref name="newType"/>.
577
+ Returns an enumerator that iterates through the locator.
570
578
  </summary>
571
- <remarks>This method creates a new build key object, the original is unchanged.</remarks>
572
- <param name="newType">New type to place in the build key.</param>
573
- <returns>The new build key.</returns>
579
+ <returns>
580
+ An <see cref="T:System.Collections.IEnumerator"/> object that can be used to iterate through the locator.
581
+ </returns>
574
582
  </member>
575
- <member name="M:Microsoft.Practices.ObjectBuilder2.NamedTypeBuildKey.Equals(System.Object)">
583
+ <member name="P:Microsoft.Practices.ObjectBuilder2.ReadableLocator.Count">
576
584
  <summary>
577
- Compare two <see cref="T:Microsoft.Practices.ObjectBuilder2.NamedTypeBuildKey"/> instances.
585
+ Gets the number of items in the locator.
578
586
  </summary>
579
- <remarks>Two <see cref="T:Microsoft.Practices.ObjectBuilder2.NamedTypeBuildKey"/> instances compare equal
580
- if they contain the same name and the same type. Also, comparing
581
- against a different type will also return false.</remarks>
582
- <param name="obj">Object to compare to.</param>
583
- <returns>True if the two keys are equal, false if not.</returns>
587
+ <value>
588
+ The number of items in the locator.
589
+ </value>
584
590
  </member>
585
- <member name="M:Microsoft.Practices.ObjectBuilder2.NamedTypeBuildKey.GetHashCode">
591
+ <member name="P:Microsoft.Practices.ObjectBuilder2.ReadableLocator.ParentLocator">
586
592
  <summary>
587
- Calculate a hash code for this instance.
593
+ Gets the parent locator.
588
594
  </summary>
589
- <returns>A hash code.</returns>
595
+ <value>
596
+ The parent locator.
597
+ </value>
590
598
  </member>
591
- <member name="M:Microsoft.Practices.ObjectBuilder2.NamedTypeBuildKey.op_Equality(Microsoft.Practices.ObjectBuilder2.NamedTypeBuildKey,Microsoft.Practices.ObjectBuilder2.NamedTypeBuildKey)">
599
+ <member name="P:Microsoft.Practices.ObjectBuilder2.ReadableLocator.ReadOnly">
592
600
  <summary>
593
- Compare two <see cref="T:Microsoft.Practices.ObjectBuilder2.NamedTypeBuildKey"/> instances for equality.
601
+ Determines if the locator is read-only.
594
602
  </summary>
595
- <remarks>Two <see cref="T:Microsoft.Practices.ObjectBuilder2.NamedTypeBuildKey"/> instances compare equal
596
- if they contain the same name and the same type.</remarks>
597
- <param name="left">First of the two keys to compare.</param>
598
- <param name="right">Second of the two keys to compare.</param>
599
- <returns>True if the values of the keys are the same, else false.</returns>
603
+ <value>
604
+ true if the locator is read-only; otherwise, false.
605
+ </value>
600
606
  </member>
601
- <member name="M:Microsoft.Practices.ObjectBuilder2.NamedTypeBuildKey.op_Inequality(Microsoft.Practices.ObjectBuilder2.NamedTypeBuildKey,Microsoft.Practices.ObjectBuilder2.NamedTypeBuildKey)">
607
+ <member name="M:Microsoft.Practices.ObjectBuilder2.ReadOnlyLocator.#ctor(Microsoft.Practices.ObjectBuilder2.IReadableLocator)">
602
608
  <summary>
603
- Compare two <see cref="T:Microsoft.Practices.ObjectBuilder2.NamedTypeBuildKey"/> instances for inequality.
609
+ Initialize a new instance of the <see cref="T:Microsoft.Practices.ObjectBuilder2.ReadableLocator"/> class with an <see cref="T:Microsoft.Practices.ObjectBuilder2.IReadableLocator"/> to wrap.
604
610
  </summary>
605
- <remarks>Two <see cref="T:Microsoft.Practices.ObjectBuilder2.NamedTypeBuildKey"/> instances compare equal
606
- if they contain the same name and the same type. If either field differs
607
- the keys are not equal.</remarks>
608
- <param name="left">First of the two keys to compare.</param>
609
- <param name="right">Second of the two keys to compare.</param>
610
- <returns>false if the values of the keys are the same, else true.</returns>
611
+ <param name="innerLocator">The inner locator to be wrapped.</param>
611
612
  </member>
612
- <member name="M:Microsoft.Practices.ObjectBuilder2.NamedTypeBuildKey.ToString">
613
+ <member name="M:Microsoft.Practices.ObjectBuilder2.ReadOnlyLocator.Contains(System.Object)">
613
614
  <summary>
614
- Formats the build key as a string (primarily for debugging).
615
+ Determine if the locator contains an object for the given key.
615
616
  </summary>
616
- <returns>A readable string representation of the build key.</returns>
617
+ <param name="key">The key to check.</param>
618
+ <returns>
619
+ true if the locator contains an object for the key; returns
620
+ false otherwise.
621
+ </returns>
617
622
  </member>
618
- <member name="P:Microsoft.Practices.ObjectBuilder2.NamedTypeBuildKey.Type">
623
+ <member name="M:Microsoft.Practices.ObjectBuilder2.ReadOnlyLocator.Get(System.Object)">
619
624
  <summary>
620
- Return the <see cref="P:Microsoft.Practices.ObjectBuilder2.NamedTypeBuildKey.Type"/> stored in this build key.
625
+ Gets an object from the locator, registered with the given key.
621
626
  </summary>
622
- <value>The type to build.</value>
627
+ <param name="key">The key that the object is registered with.</param>
628
+ <returns>The object, if found; null otherwise.</returns>
629
+ <exception cref="T:System.ArgumentNullException">Key is null.</exception>
623
630
  </member>
624
- <member name="P:Microsoft.Practices.ObjectBuilder2.NamedTypeBuildKey.Name">
631
+ <member name="M:Microsoft.Practices.ObjectBuilder2.ReadOnlyLocator.GetEnumerator">
625
632
  <summary>
626
- Returns the name stored in this build key.
633
+ Returns an enumerator that iterates through the locator.
627
634
  </summary>
628
- <remarks>The name to use when building.</remarks>
635
+ <returns>
636
+ An <see cref="T:System.Collections.IEnumerator"/> object that can be used to iterate through the locator.
637
+ </returns>
629
638
  </member>
630
- <member name="T:Microsoft.Practices.ObjectBuilder2.BuildKey">
639
+ <member name="P:Microsoft.Practices.ObjectBuilder2.ReadOnlyLocator.Count">
631
640
  <summary>
632
- Utility methods for dealing with arbitrary build key objects.
641
+ Gets the number of items in the locator.
633
642
  </summary>
643
+ <value>
644
+ The number of items in the locator.
645
+ </value>
634
646
  </member>
635
- <member name="M:Microsoft.Practices.ObjectBuilder2.BuildKey.GetType(System.Object)">
647
+ <member name="P:Microsoft.Practices.ObjectBuilder2.ReadOnlyLocator.ParentLocator">
636
648
  <summary>
637
- Gets the <see cref="T:System.Type"/> of object to build from the build key.
649
+ Gets the parent locator.
638
650
  </summary>
639
- <param name="buildKey">The build key to get the <see cref="T:System.Type"/>.</param>
640
- <returns>The <see cref="T:System.Type"/> of object to build from the key.</returns>
651
+ <value>
652
+ The parent locator.
653
+ </value>
641
654
  </member>
642
- <member name="M:Microsoft.Practices.ObjectBuilder2.BuildKey.TryGetType(System.Object,System.Type@)">
655
+ <member name="P:Microsoft.Practices.ObjectBuilder2.ReadOnlyLocator.ReadOnly">
643
656
  <summary>
644
- Tries to get the <see cref="T:System.Type"/> from <paramref name="buildKey"/>.
657
+ Determines if the locator is read-only.
645
658
  </summary>
646
- <param name="buildKey">The build key to get the <see cref="T:System.Type"/>.</param>
647
- <param name="type"></param>
648
- <returns>true if the <see cref="T:System.Type"/> was found; otherwise, false.</returns>
659
+ <value>
660
+ true if the locator is read-only; otherwise, false.
661
+ </value>
649
662
  </member>
650
- <member name="M:Microsoft.Practices.ObjectBuilder2.BuildKey.ReplaceType(System.Object,System.Type)">
663
+ <member name="T:Microsoft.Practices.ObjectBuilder2.IllegalInjectionMethodException">
651
664
  <summary>
652
- Given a <paramref name="buildKey"/>, return a new build key
653
- which is the same as the original, except that the type has
654
- been replaced with <paramref name="newType"/>.
665
+ The exception thrown when injection is attempted on a method
666
+ that is an open generic or has out or ref params.
655
667
  </summary>
656
- <param name="buildKey">original build key</param>
657
- <param name="newType">New type to put in new build key.</param>
658
- <returns>The new build key.</returns>
659
- </member>
660
- <member name="T:Microsoft.Practices.ObjectBuilder2.ILifetimeFactoryPolicy">
661
668
  <summary>
662
- A builder policy used to create lifetime policy instances.
663
- Used by the LifetimeStrategy when instantiating open
664
- generic types.
669
+ The exception thrown when injection is attempted on a method
670
+ that is an open generic or has out or ref params.
665
671
  </summary>
666
672
  </member>
667
- <member name="M:Microsoft.Practices.ObjectBuilder2.ILifetimeFactoryPolicy.CreateLifetimePolicy">
673
+ <member name="M:Microsoft.Practices.ObjectBuilder2.IllegalInjectionMethodException.#ctor">
668
674
  <summary>
669
- Create a new instance of <see cref="T:Microsoft.Practices.ObjectBuilder2.ILifetimePolicy"/>.
675
+ Construct a new <see cref="T:Microsoft.Practices.ObjectBuilder2.IllegalInjectionMethodException"/> with no
676
+ message.
670
677
  </summary>
671
- <returns>The new instance.</returns>
672
678
  </member>
673
- <member name="T:Microsoft.Practices.ObjectBuilder2.ReadWriteLocator">
679
+ <member name="M:Microsoft.Practices.ObjectBuilder2.IllegalInjectionMethodException.#ctor(System.String)">
674
680
  <summary>
675
- Represents an abstract implementation of <see cref="T:Microsoft.Practices.ObjectBuilder2.IReadWriteLocator"/>.
681
+ Construct a <see cref="T:Microsoft.Practices.ObjectBuilder2.IllegalInjectionMethodException"/> with the given message
676
682
  </summary>
683
+ <param name="message">Message to return.</param>
677
684
  </member>
678
- <member name="T:Microsoft.Practices.ObjectBuilder2.ReadableLocator">
685
+ <member name="M:Microsoft.Practices.ObjectBuilder2.IllegalInjectionMethodException.#ctor(System.String,System.Exception)">
679
686
  <summary>
680
- Represents an abstract implementation of <see cref="T:Microsoft.Practices.ObjectBuilder2.IReadableLocator"/>.
687
+ Construct a <see cref="T:Microsoft.Practices.ObjectBuilder2.IllegalInjectionMethodException"/> with the given message
688
+ and inner exception.
681
689
  </summary>
690
+ <param name="message">Message to return.</param>
691
+ <param name="innerException">Inner exception</param>
682
692
  </member>
683
- <member name="M:Microsoft.Practices.ObjectBuilder2.ReadableLocator.#ctor">
693
+ <member name="M:Microsoft.Practices.ObjectBuilder2.IllegalInjectionMethodException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
684
694
  <summary>
685
- Initialize a new instance of the <see cref="T:Microsoft.Practices.ObjectBuilder2.ReadableLocator"/> class.
695
+ Used for serialization.
686
696
  </summary>
697
+ <param name="info">Serialization info.</param>
698
+ <param name="context">Serialization context.</param>
687
699
  </member>
688
- <member name="M:Microsoft.Practices.ObjectBuilder2.ReadableLocator.#ctor(Microsoft.Practices.ObjectBuilder2.IReadableLocator)">
700
+ <member name="T:Microsoft.Practices.ObjectBuilder2.TransientLifetimePolicy">
689
701
  <summary>
690
- Initialize a new instance of the <see cref="T:Microsoft.Practices.ObjectBuilder2.ReadableLocator"/> class with a parent <see cref="T:Microsoft.Practices.ObjectBuilder2.IReadableLocator"/>.
702
+ An implementation of <see cref="T:Microsoft.Practices.ObjectBuilder2.ILifetimePolicy"/> that does nothing,
703
+ ensuring that a new object gets created every time.
691
704
  </summary>
692
- <param name="parentLocator">A parent <see cref="T:Microsoft.Practices.ObjectBuilder2.IReadableLocator"/>.</param>
693
705
  </member>
694
- <member name="M:Microsoft.Practices.ObjectBuilder2.ReadableLocator.Contains(System.Object)">
706
+ <member name="M:Microsoft.Practices.ObjectBuilder2.TransientLifetimePolicy.GetValue">
695
707
  <summary>
696
- Determine if the locator contains an object for the given key.
708
+ Retrieve a value from the backing store associated with this Lifetime policy.
697
709
  </summary>
698
- <param name="key">The key to check.</param>
699
- <returns>
700
- true if the locator contains an object for the key; returns
701
- false otherwise.
702
- </returns>
710
+ <returns>the object desired, or null if no such object is currently stored.</returns>
703
711
  </member>
704
- <member name="M:Microsoft.Practices.ObjectBuilder2.ReadableLocator.FindBy(System.Predicate{System.Collections.Generic.KeyValuePair{System.Object,System.Object}})">
712
+ <member name="M:Microsoft.Practices.ObjectBuilder2.TransientLifetimePolicy.SetValue(System.Object)">
705
713
  <summary>
706
- Finds objects in the locator using the predicate, and returns a temporary locator
707
- filled with the found objects.
714
+ Stores the given value into backing store for retrieval later.
708
715
  </summary>
709
- <param name="predicate">The predicate to test whether to include an object.</param>
710
- <returns>The new locator</returns>
711
- <exception cref="T:System.ArgumentNullException">Predicate is null.</exception>
716
+ <param name="newValue">The object being stored.</param>
712
717
  </member>
713
- <member name="M:Microsoft.Practices.ObjectBuilder2.ReadableLocator.Get``1">
718
+ <member name="M:Microsoft.Practices.ObjectBuilder2.TransientLifetimePolicy.RemoveValue">
714
719
  <summary>
715
- Gets an object from the locator, registered with the key of typeof(T).
720
+ Remove the given object from backing store.
716
721
  </summary>
717
- <typeparam name="TItem">The type of the object to find.</typeparam>
718
- <returns>The object, if found; null otherwise.</returns>
719
722
  </member>
720
- <member name="M:Microsoft.Practices.ObjectBuilder2.ReadableLocator.Get``1(System.Object)">
723
+ <member name="T:Microsoft.Practices.ObjectBuilder2.ILifetimeContainer">
721
724
  <summary>
722
- Gets an object from the locator, registered with the given key.
725
+ Represents a lifetime container.
723
726
  </summary>
724
- <typeparam name="TItem">The type of the object to find.</typeparam>
725
- <param name="key">The key that the object is registered with.</param>
726
- <returns>The object, if found; null otherwise.</returns>
727
- <exception cref="T:System.ArgumentNullException"><paramref name="key"/> is null.</exception>
727
+ <remarks>
728
+ A lifetime container tracks the lifetime of an object, and implements
729
+ IDisposable. When the container is disposed, any objects in the
730
+ container which implement IDisposable are also disposed.
731
+ </remarks>
728
732
  </member>
729
- <member name="M:Microsoft.Practices.ObjectBuilder2.ReadableLocator.Get(System.Object)">
733
+ <member name="M:Microsoft.Practices.ObjectBuilder2.ILifetimeContainer.Add(System.Object)">
730
734
  <summary>
731
- Gets an object from the locator, registered with the given key.
735
+ Adds an object to the lifetime container.
732
736
  </summary>
733
- <param name="key">The key that the object is registered with.</param>
734
- <returns>The object, if found; null otherwise.</returns>
735
- <exception cref="T:System.ArgumentNullException">Key is null.</exception>
737
+ <param name="item">The item to be added to the lifetime container.</param>
736
738
  </member>
737
- <member name="M:Microsoft.Practices.ObjectBuilder2.ReadableLocator.GetEnumerator">
739
+ <member name="M:Microsoft.Practices.ObjectBuilder2.ILifetimeContainer.Contains(System.Object)">
738
740
  <summary>
739
- Returns an enumerator that iterates through the locator.
741
+ Determine if a given object is in the lifetime container.
740
742
  </summary>
743
+ <param name="item">
744
+ The item to locate in the lifetime container.
745
+ </param>
741
746
  <returns>
742
- An <see cref="T:System.Collections.IEnumerator"/> object that can be used to iterate through the locator.
747
+ Returns true if the object is contained in the lifetime
748
+ container; returns false otherwise.
743
749
  </returns>
744
750
  </member>
745
- <member name="M:Microsoft.Practices.ObjectBuilder2.ReadableLocator.System#Collections#IEnumerable#GetEnumerator">
751
+ <member name="M:Microsoft.Practices.ObjectBuilder2.ILifetimeContainer.Remove(System.Object)">
746
752
  <summary>
747
- Returns an enumerator that iterates through the locator.
753
+ Removes an item from the lifetime container. The item is
754
+ not disposed.
748
755
  </summary>
749
- <returns>
750
- An <see cref="T:System.Collections.IEnumerator"/> object that can be used to iterate through the locator.
751
- </returns>
756
+ <param name="item">The item to be removed.</param>
752
757
  </member>
753
- <member name="P:Microsoft.Practices.ObjectBuilder2.ReadableLocator.Count">
758
+ <member name="P:Microsoft.Practices.ObjectBuilder2.ILifetimeContainer.Count">
754
759
  <summary>
755
- Gets the number of items in the locator.
760
+ Gets the number of references in the lifetime container
756
761
  </summary>
757
762
  <value>
758
- The number of items in the locator.
763
+ The number of references in the lifetime container
759
764
  </value>
760
765
  </member>
761
- <member name="P:Microsoft.Practices.ObjectBuilder2.ReadableLocator.ParentLocator">
766
+ <member name="T:Microsoft.Practices.ObjectBuilder2.FixedTypeResolverPolicy">
762
767
  <summary>
763
- Gets the parent locator.
768
+ An implementation of <see cref="T:Microsoft.Practices.ObjectBuilder2.IDependencyResolverPolicy"/> that
769
+ calls back into the build chain to build up the dependency, passing
770
+ a type given at compile time as its build key.
764
771
  </summary>
765
- <value>
766
- The parent locator.
767
- </value>
768
772
  </member>
769
- <member name="P:Microsoft.Practices.ObjectBuilder2.ReadableLocator.ReadOnly">
773
+ <member name="T:Microsoft.Practices.ObjectBuilder2.IDependencyResolverPolicy">
770
774
  <summary>
771
- Determines if the locator is read-only.
775
+ A <see cref="T:Microsoft.Practices.ObjectBuilder2.IBuilderPolicy"/> that is used at build plan execution time
776
+ to resolve a dependent value.
772
777
  </summary>
773
- <value>
774
- true if the locator is read-only; otherwise, false.
775
- </value>
776
778
  </member>
777
- <member name="T:Microsoft.Practices.ObjectBuilder2.IReadWriteLocator">
779
+ <member name="M:Microsoft.Practices.ObjectBuilder2.IDependencyResolverPolicy.Resolve(Microsoft.Practices.ObjectBuilder2.IBuilderContext)">
778
780
  <summary>
779
- Represents a locator that can be read from and written to.
781
+ Get the value for a dependency.
780
782
  </summary>
781
- <remarks>
782
- <para>
783
- A locator is dictionary of keys to values, but it keeps the values with
784
- weak references, so that locating an object does not keep it alive. If you
785
- want to keep the object alive too, you should consider using an
786
- <see cref="T:Microsoft.Practices.ObjectBuilder2.ILifetimeContainer"/>.
787
- </para>
788
- <para>
789
- Locators have a built-in concept of hierarchy, so you can ask questions
790
- of a locator and tell it whether to return results from the current locator
791
- only, or whether to ask the parent locator when local lookups fail.</para>
792
- </remarks>
783
+ <param name="context">Current build context.</param>
784
+ <returns>The value for the dependency.</returns>
793
785
  </member>
794
- <member name="M:Microsoft.Practices.ObjectBuilder2.IReadWriteLocator.Add(System.Object,System.Object)">
786
+ <member name="M:Microsoft.Practices.ObjectBuilder2.FixedTypeResolverPolicy.#ctor(System.Type)">
795
787
  <summary>
796
- Adds an object to the locator, with the given key.
788
+ Create a new instance storing the given type.
797
789
  </summary>
798
- <param name="key">The key to register the object with.</param>
799
- <param name="value">The object to be registered.</param>
800
- <exception cref="T:System.ArgumentNullException"><paramref name="key"/> or value are null.</exception>
790
+ <param name="typeToBuild">Type to resolve.</param>
801
791
  </member>
802
- <member name="M:Microsoft.Practices.ObjectBuilder2.IReadWriteLocator.Remove(System.Object)">
792
+ <member name="M:Microsoft.Practices.ObjectBuilder2.FixedTypeResolverPolicy.Resolve(Microsoft.Practices.ObjectBuilder2.IBuilderContext)">
803
793
  <summary>
804
- Removes an object from the locator.
794
+ Get the value for a dependency.
805
795
  </summary>
806
- <param name="key">The key under which the object was registered.</param>
807
- <returns>
808
- Returns true if the object was found in the locator; returns
809
- false otherwise.
810
- </returns>
811
- <exception cref="T:System.ArgumentNullException"><paramref name="key"/> is null.</exception>
796
+ <param name="context">Current build context.</param>
797
+ <returns>The value for the dependency.</returns>
812
798
  </member>
813
- <member name="M:Microsoft.Practices.ObjectBuilder2.ReadWriteLocator.#ctor">
799
+ <member name="T:Microsoft.Practices.ObjectBuilder2.PropertySelectorPolicy`1">
814
800
  <summary>
815
- Initialize a new instance of the <see cref="T:Microsoft.Practices.ObjectBuilder2.ReadWriteLocator"/> class.
801
+ An implementation of <see cref="T:Microsoft.Practices.ObjectBuilder2.IPropertySelectorPolicy"/> that looks
802
+ for properties marked with the <typeparamref name="TResolutionAttribute"/>
803
+ attribute that are also settable and not indexers.
816
804
  </summary>
805
+ <typeparam name="TResolutionAttribute"></typeparam>
817
806
  </member>
818
- <member name="M:Microsoft.Practices.ObjectBuilder2.ReadWriteLocator.#ctor(Microsoft.Practices.ObjectBuilder2.IReadableLocator)">
807
+ <member name="T:Microsoft.Practices.ObjectBuilder2.PropertySelectorBase`1">
819
808
  <summary>
820
- Initialize a new instance of the <see cref="T:Microsoft.Practices.ObjectBuilder2.ReadWriteLocator"/> class with a parent <see cref="T:Microsoft.Practices.ObjectBuilder2.IReadableLocator"/>.
809
+ Base class that provides an implementation of <see cref="T:Microsoft.Practices.ObjectBuilder2.IPropertySelectorPolicy"/>
810
+ which lets you override how the parameter resolvers are created.
821
811
  </summary>
822
- <param name="parentLocator">A parent <see cref="T:Microsoft.Practices.ObjectBuilder2.IReadableLocator"/>.</param>
823
812
  </member>
824
- <member name="M:Microsoft.Practices.ObjectBuilder2.ReadWriteLocator.Add(System.Object,System.Object)">
813
+ <member name="T:Microsoft.Practices.ObjectBuilder2.IPropertySelectorPolicy">
825
814
  <summary>
826
- Adds an object to the locator, with the given key.
815
+ An <see cref="T:Microsoft.Practices.ObjectBuilder2.IBuilderPolicy"/> that returns a sequence
816
+ of properties that should be injected for the given type.
827
817
  </summary>
828
- <param name="key">The key to register the object with.</param>
829
- <param name="value">The object to be registered.</param>
830
- <exception cref="T:System.ArgumentNullException"><paramref name="key"/> or value are null.</exception>
831
818
  </member>
832
- <member name="M:Microsoft.Practices.ObjectBuilder2.ReadWriteLocator.Remove(System.Object)">
819
+ <member name="M:Microsoft.Practices.ObjectBuilder2.IPropertySelectorPolicy.SelectProperties(Microsoft.Practices.ObjectBuilder2.IBuilderContext)">
833
820
  <summary>
834
- Removes an object from the locator.
821
+ Returns sequence of properties on the given type that
822
+ should be set as part of building that object.
835
823
  </summary>
836
- <param name="key">The key under which the object was registered.</param>
837
- <returns>
838
- Returns true if the object was found in the locator; returns
839
- false otherwise.
840
- </returns>
841
- <exception cref="T:System.ArgumentNullException"><paramref name="key"/> is null.</exception>
824
+ <param name="context">Current build context.</param>
825
+ <returns>Sequence of <see cref="T:System.Reflection.PropertyInfo"/> objects
826
+ that contain the properties to set.</returns>
842
827
  </member>
843
- <member name="P:Microsoft.Practices.ObjectBuilder2.ReadWriteLocator.ReadOnly">
828
+ <member name="M:Microsoft.Practices.ObjectBuilder2.PropertySelectorBase`1.SelectProperties(Microsoft.Practices.ObjectBuilder2.IBuilderContext)">
844
829
  <summary>
845
- Determines if the locator is read-only.
830
+ Returns sequence of properties on the given type that
831
+ should be set as part of building that object.
846
832
  </summary>
847
- <value>
848
- true if the locator is read-only; otherwise, false.
849
- </value>
833
+ <param name="context">current build context.</param>
834
+ <returns>Sequence of <see cref="T:System.Reflection.PropertyInfo"/> objects
835
+ that contain the properties to set.</returns>
850
836
  </member>
851
- <member name="T:Microsoft.Practices.ObjectBuilder2.Guard">
837
+ <member name="M:Microsoft.Practices.ObjectBuilder2.PropertySelectorBase`1.CreateResolver(System.Reflection.PropertyInfo)">
852
838
  <summary>
853
- Represents a simple class for validating parameters and throwing exceptions.
839
+ Create a <see cref="T:Microsoft.Practices.ObjectBuilder2.IDependencyResolverPolicy"/> for the given
840
+ property.
854
841
  </summary>
842
+ <param name="property">Property to create resolver for.</param>
843
+ <returns>The resolver object.</returns>
855
844
  </member>
856
- <member name="M:Microsoft.Practices.ObjectBuilder2.Guard.ArgumentNotNull(System.Object,System.String)">
845
+ <member name="M:Microsoft.Practices.ObjectBuilder2.PropertySelectorPolicy`1.CreateResolver(System.Reflection.PropertyInfo)">
857
846
  <summary>
858
- Validates <paramref name="argumentValue"/> is not null and throws <see cref="T:System.ArgumentNullException"/> if it is null.
847
+ Create a <see cref="T:Microsoft.Practices.ObjectBuilder2.IDependencyResolverPolicy"/> for the given
848
+ property.
859
849
  </summary>
860
- <param name="argumentValue">The value to validate.</param>
861
- <param name="argumentName">The name of <paramref name="argumentValue"/>.</param>
850
+ <param name="property">Property to create resolver for.</param>
851
+ <returns>The resolver object.</returns>
862
852
  </member>
863
- <member name="M:Microsoft.Practices.ObjectBuilder2.Guard.ArgumentNotNullOrEmpty(System.String,System.String)">
853
+ <member name="T:Microsoft.Practices.ObjectBuilder2.IBuildPlanCreatorPolicy">
864
854
  <summary>
865
- Validates <paramref name="argumentValue"/> is not null or an empty string and throws <see cref="T:System.ArgumentNullException"/> if it is null or an empty string .
855
+ A <see cref="T:Microsoft.Practices.ObjectBuilder2.IBuilderPolicy"/> that can create and return an <see cref="T:Microsoft.Practices.ObjectBuilder2.IBuildPlanPolicy"/>
856
+ for the given build key.
866
857
  </summary>
867
- <param name="argumentValue">The value to validate.</param>
868
- <param name="argumentName">The name of <paramref name="argumentValue"/>.</param>
869
858
  </member>
870
- <member name="T:Microsoft.Practices.ObjectBuilder2.TransientLifetimePolicy">
859
+ <member name="M:Microsoft.Practices.ObjectBuilder2.IBuildPlanCreatorPolicy.CreatePlan(Microsoft.Practices.ObjectBuilder2.IBuilderContext,System.Object)">
871
860
  <summary>
872
- An implementation of <see cref="T:Microsoft.Practices.ObjectBuilder2.ILifetimePolicy"/> that does nothing,
873
- ensuring that a new object gets created every time.
861
+ Create a build plan using the given context and build key.
874
862
  </summary>
863
+ <param name="context">Current build context.</param>
864
+ <param name="buildKey">Current build key.</param>
865
+ <returns>The build plan.</returns>
875
866
  </member>
876
- <member name="T:Microsoft.Practices.ObjectBuilder2.ILifetimePolicy">
867
+ <member name="T:Microsoft.Practices.ObjectBuilder2.DynamicMethodCallStrategy">
877
868
  <summary>
878
- A <see cref="T:Microsoft.Practices.ObjectBuilder2.IBuilderPolicy"/> that controls how instances are
879
- persisted and recovered from an external store. Used to implement
880
- things like singletons and per-http-request lifetime.
869
+ A <see cref="T:Microsoft.Practices.ObjectBuilder2.BuilderStrategy"/> that generates IL to call
870
+ chosen methods (as specified by the current <see cref="T:Microsoft.Practices.ObjectBuilder2.IMethodSelectorPolicy"/>)
871
+ as part of object build up.
881
872
  </summary>
882
873
  </member>
883
- <member name="M:Microsoft.Practices.ObjectBuilder2.ILifetimePolicy.GetValue">
874
+ <member name="M:Microsoft.Practices.ObjectBuilder2.DynamicMethodCallStrategy.PreBuildUp(Microsoft.Practices.ObjectBuilder2.IBuilderContext)">
884
875
  <summary>
885
- Retrieve a value from the backing store associated with this Lifetime policy.
876
+ Called during the chain of responsibility for a build operation. The
877
+ PreBuildUp method is called when the chain is being executed in the
878
+ forward direction.
886
879
  </summary>
887
- <returns>the object desired, or null if no such object is currently stored.</returns>
880
+ <param name="context">Context of the build operation.</param>
888
881
  </member>
889
- <member name="M:Microsoft.Practices.ObjectBuilder2.ILifetimePolicy.SetValue(System.Object)">
882
+ <member name="M:Microsoft.Practices.ObjectBuilder2.DynamicMethodCallStrategy.ThrowOnParameterResolveFailed(System.Exception,System.String,System.String)">
890
883
  <summary>
891
- Stores the given value into backing store for retrieval later.
884
+ A helper method used by the generated IL to throw an exception
885
+ when an injection method parameter could not be resolved.
892
886
  </summary>
893
- <param name="newValue">The object to store.</param>
887
+ <param name="inner">Exception that provides the failure info.</param>
888
+ <param name="methodName">Name of the method that was going to be called.</param>
889
+ <param name="parameterName">Parameter that failed to resolve.</param>
894
890
  </member>
895
- <member name="M:Microsoft.Practices.ObjectBuilder2.ILifetimePolicy.RemoveValue">
891
+ <member name="T:Microsoft.Practices.ObjectBuilder2.SelectedMemberWithParameters">
896
892
  <summary>
897
- Remove the value this lifetime policy is managing from backing store.
893
+ Base class for return of selector policies that need
894
+ to keep track of a set of parameter keys.
898
895
  </summary>
899
896
  </member>
900
- <member name="M:Microsoft.Practices.ObjectBuilder2.TransientLifetimePolicy.GetValue">
897
+ <member name="M:Microsoft.Practices.ObjectBuilder2.SelectedMemberWithParameters.AddParameterKey(System.String)">
901
898
  <summary>
902
- Retrieve a value from the backing store associated with this Lifetime policy.
899
+ Add a new parameter key to this object. Keys are assumed
900
+ to be in the order of the parameters to the constructor.
903
901
  </summary>
904
- <returns>the object desired, or null if no such object is currently stored.</returns>
902
+ <param name="newKey">Key for the next parameter to look up.</param>
905
903
  </member>
906
- <member name="M:Microsoft.Practices.ObjectBuilder2.TransientLifetimePolicy.SetValue(System.Object)">
904
+ <member name="M:Microsoft.Practices.ObjectBuilder2.SelectedMemberWithParameters.GetParameterKeys">
907
905
  <summary>
908
- Stores the given value into backing store for retrieval later.
906
+ The set of keys for the constructor parameters.
909
907
  </summary>
910
- <param name="newValue">The object being stored.</param>
911
908
  </member>
912
- <member name="M:Microsoft.Practices.ObjectBuilder2.TransientLifetimePolicy.RemoveValue">
909
+ <member name="T:Microsoft.Practices.ObjectBuilder2.SelectedMemberWithParameters`1">
913
910
  <summary>
914
- Remove the given object from backing store.
911
+ Base class for return values from selector policies that
912
+ return a memberinfo of some sort plus a list of parameter
913
+ keys to look up the parameter resolvers.
915
914
  </summary>
916
915
  </member>
917
- <member name="T:Microsoft.Practices.ObjectBuilder2.SelectedProperty">
916
+ <member name="M:Microsoft.Practices.ObjectBuilder2.SelectedMemberWithParameters`1.#ctor(`0)">
918
917
  <summary>
919
- Objects of this type are returned from
920
- <see cref="M:Microsoft.Practices.ObjectBuilder2.IPropertySelectorPolicy.SelectProperties(Microsoft.Practices.ObjectBuilder2.IBuilderContext)"/>.
921
- This class combines the <see cref="T:System.Reflection.PropertyInfo"/> about
922
- the property with the string key used to look up the resolver
923
- for this property's value.
918
+ Construct a new <see cref="T:Microsoft.Practices.ObjectBuilder2.SelectedMemberWithParameters`1"/>, storing
919
+ the given member info.
924
920
  </summary>
921
+ <param name="memberInfo">Member info to store.</param>
925
922
  </member>
926
- <member name="M:Microsoft.Practices.ObjectBuilder2.SelectedProperty.#ctor(System.Reflection.PropertyInfo,System.String)">
923
+ <member name="P:Microsoft.Practices.ObjectBuilder2.SelectedMemberWithParameters`1.MemberInfo">
927
924
  <summary>
928
- Create an instance of <see cref="T:Microsoft.Practices.ObjectBuilder2.SelectedProperty"/>
929
- with the given <see cref="T:System.Reflection.PropertyInfo"/> and key.
925
+ The member info stored.
930
926
  </summary>
931
- <param name="property">The property.</param>
932
- <param name="key">Key to use to look up the resolver.</param>
933
927
  </member>
934
- <member name="P:Microsoft.Practices.ObjectBuilder2.SelectedProperty.Property">
928
+ <member name="T:Microsoft.Practices.ObjectBuilder2.BuildPlanStrategy">
935
929
  <summary>
936
- PropertyInfo for this property.
930
+ A <see cref="T:Microsoft.Practices.ObjectBuilder2.BuilderStrategy"/> that will look for a build plan
931
+ in the current context. If it exists, it invokes it, otherwise
932
+ it creates one and stores it for later, and invokes it.
937
933
  </summary>
938
934
  </member>
939
- <member name="P:Microsoft.Practices.ObjectBuilder2.SelectedProperty.Key">
935
+ <member name="M:Microsoft.Practices.ObjectBuilder2.BuildPlanStrategy.PreBuildUp(Microsoft.Practices.ObjectBuilder2.IBuilderContext)">
940
936
  <summary>
941
- Key to look up this property's resolver.
937
+ Called during the chain of responsibility for a build operation.
942
938
  </summary>
939
+ <param name="context">The context for the operation.</param>
943
940
  </member>
944
- <member name="T:Microsoft.Practices.ObjectBuilder2.MethodSelectorPolicyBase`1">
941
+ <member name="T:Microsoft.Practices.ObjectBuilder2.IBuilder">
945
942
  <summary>
946
- Base class that provides an implementation of <see cref="T:Microsoft.Practices.ObjectBuilder2.IMethodSelectorPolicy"/>
947
- which lets you override how the parameter resolvers are created.
943
+ Represents the main interface for an object builder.
948
944
  </summary>
949
- <typeparam name="TMarkerAttribute">Attribute that marks methods that should
950
- be called.</typeparam>
951
945
  </member>
952
- <member name="T:Microsoft.Practices.ObjectBuilder2.IMethodSelectorPolicy">
946
+ <member name="M:Microsoft.Practices.ObjectBuilder2.IBuilder.BuildUp(Microsoft.Practices.ObjectBuilder2.IReadWriteLocator,Microsoft.Practices.ObjectBuilder2.ILifetimeContainer,Microsoft.Practices.ObjectBuilder2.IPolicyList,Microsoft.Practices.ObjectBuilder2.IStrategyChain,System.Object,System.Object)">
953
947
  <summary>
954
- An <see cref="T:Microsoft.Practices.ObjectBuilder2.IBuilderPolicy"/> that will examine the given
955
- types and return a sequence of <see cref="T:System.Reflection.MethodInfo"/> objects
956
- that should be called as part of building the object.
948
+ Performs a build operation.
957
949
  </summary>
950
+ <remarks>
951
+ This operation uses the strategies and permanent policies already configured
952
+ into the builder, combined with the optional transient policies, and starts a build
953
+ operation. Transient policies override any built-in policies, when present.
954
+ </remarks>
955
+ <param name="locator">The locator to be used for this build operation.</param>
956
+ <param name="lifetime">The <see cref="T:Microsoft.Practices.ObjectBuilder2.ILifetimeContainer"/> to use for this build operation.</param>
957
+ <param name="policies">
958
+ The transient policies to apply to this build. These
959
+ policies take precedence over any permanent policies built into the builder.
960
+ </param>
961
+ <param name="strategies">
962
+ The <see cref="T:Microsoft.Practices.ObjectBuilder2.IStrategyChain"/> to use for this build operation.
963
+ </param>
964
+ <param name="buildKey">The key of the object to build.</param>
965
+ <param name="existing">
966
+ The existing object to run the build chain on, if one exists.
967
+ If null is passed, a new object instance will typically be created by some strategy
968
+ in the chain.
969
+ </param>
970
+ <returns>The built object.</returns>
958
971
  </member>
959
- <member name="M:Microsoft.Practices.ObjectBuilder2.IMethodSelectorPolicy.SelectMethods(Microsoft.Practices.ObjectBuilder2.IBuilderContext)">
972
+ <member name="M:Microsoft.Practices.ObjectBuilder2.IBuilder.BuildUp``1(Microsoft.Practices.ObjectBuilder2.IReadWriteLocator,Microsoft.Practices.ObjectBuilder2.ILifetimeContainer,Microsoft.Practices.ObjectBuilder2.IPolicyList,Microsoft.Practices.ObjectBuilder2.IStrategyChain,System.Object,System.Object)">
960
973
  <summary>
961
- Return the sequence of methods to call while building the target object.
974
+ Performs a build operation.
962
975
  </summary>
963
- <param name="context">Current build context.</param>
964
- <returns>Sequence of methods to call.</returns>
976
+ <remarks>
977
+ This operation uses the strategies and permanent policies already configured
978
+ into the builder, combined with the optional transient policies, and starts a build
979
+ operation. Transient policies override any built-in policies, when present.
980
+ </remarks>
981
+ <typeparam name="TTypeToBuild">The type to build.</typeparam>
982
+ <param name="locator">The locator to be used for this build operation.</param>
983
+ <param name="lifetime">The <see cref="T:Microsoft.Practices.ObjectBuilder2.ILifetimeContainer"/> to use for this build operation.</param>
984
+ <param name="policies">
985
+ The transient policies to apply to this build. These
986
+ policies take precedence over any permanent policies built into the builder.
987
+ </param>
988
+ <param name="strategies">
989
+ The <see cref="T:Microsoft.Practices.ObjectBuilder2.IStrategyChain"/> to use for this build operation.
990
+ </param>
991
+ <param name="buildKey">The key of the object to build.</param>
992
+ <param name="existing">
993
+ The existing object to run the build chain on, if one exists.
994
+ If null is passed, a new object instance will typically be created by some strategy
995
+ in the chain.
996
+ </param>
997
+ <returns>The built object.</returns>
965
998
  </member>
966
- <member name="M:Microsoft.Practices.ObjectBuilder2.MethodSelectorPolicyBase`1.SelectMethods(Microsoft.Practices.ObjectBuilder2.IBuilderContext)">
999
+ <member name="M:Microsoft.Practices.ObjectBuilder2.IBuilder.TearDown``1(Microsoft.Practices.ObjectBuilder2.IReadWriteLocator,Microsoft.Practices.ObjectBuilder2.ILifetimeContainer,Microsoft.Practices.ObjectBuilder2.IPolicyList,Microsoft.Practices.ObjectBuilder2.IStrategyChain,``0)">
967
1000
  <summary>
968
- Return the sequence of methods to call while building the target object.
1001
+ Performs an unbuild operation.
969
1002
  </summary>
970
- <param name="context">Current build context.</param>
971
- <returns>Sequence of methods to call.</returns>
1003
+ <typeparam name="TItem">The type to unbuild. If not provided, it will be inferred from the
1004
+ type of item.
1005
+ </typeparam>
1006
+ <param name="locator">The locator to be used for this build operation.</param>
1007
+ <param name="lifetime">The <see cref="T:Microsoft.Practices.ObjectBuilder2.ILifetimeContainer"/> to use for this build operation.</param>
1008
+ <param name="policies">
1009
+ The transient policies to apply to this build. These
1010
+ policies take precedence over any permanent policies built into the builder.
1011
+ </param>
1012
+ <param name="strategies">
1013
+ The <see cref="T:Microsoft.Practices.ObjectBuilder2.IStrategyChain"/> to use for this build operation.
1014
+ </param>
1015
+ <param name="item">The item to tear down.</param>
1016
+ <returns>The torn down item.</returns>
972
1017
  </member>
973
- <member name="M:Microsoft.Practices.ObjectBuilder2.MethodSelectorPolicyBase`1.CreateResolver(System.Reflection.ParameterInfo)">
1018
+ <member name="T:Microsoft.Practices.ObjectBuilder2.RecoveryStack">
974
1019
  <summary>
975
- Create a <see cref="T:Microsoft.Practices.ObjectBuilder2.IDependencyResolverPolicy"/> instance for the given
976
- <see cref="T:System.Reflection.ParameterInfo"/>.
1020
+ An implementation of <see cref="T:Microsoft.Practices.ObjectBuilder2.IRecoveryStack"/>.
977
1021
  </summary>
978
- <param name="parameter">Parameter to create the resolver for.</param>
979
- <returns>The resolver object.</returns>
980
1022
  </member>
981
- <member name="T:Microsoft.Practices.ObjectBuilder2.IBuilderAware">
1023
+ <member name="T:Microsoft.Practices.ObjectBuilder2.IRecoveryStack">
982
1024
  <summary>
983
- Implemented on a class when it wants to receive notifications
984
- about the build process.
1025
+ Data structure that stores the set of <see cref="T:Microsoft.Practices.ObjectBuilder2.IRequiresRecovery"/>
1026
+ objects and executes them when requested.
985
1027
  </summary>
986
1028
  </member>
987
- <member name="M:Microsoft.Practices.ObjectBuilder2.IBuilderAware.OnBuiltUp(System.Object)">
1029
+ <member name="M:Microsoft.Practices.ObjectBuilder2.IRecoveryStack.Add(Microsoft.Practices.ObjectBuilder2.IRequiresRecovery)">
988
1030
  <summary>
989
- Called by the <see cref="T:Microsoft.Practices.ObjectBuilder2.BuilderAwareStrategy"/> when the object is being built up.
1031
+ Add a new <see cref="T:Microsoft.Practices.ObjectBuilder2.IRequiresRecovery"/> object to this
1032
+ list.
990
1033
  </summary>
991
- <param name="buildKey">The key of the object that was just built up.</param>
1034
+ <param name="recovery">Object to add.</param>
992
1035
  </member>
993
- <member name="M:Microsoft.Practices.ObjectBuilder2.IBuilderAware.OnTearingDown">
1036
+ <member name="M:Microsoft.Practices.ObjectBuilder2.IRecoveryStack.ExecuteRecovery">
994
1037
  <summary>
995
- Called by the <see cref="T:Microsoft.Practices.ObjectBuilder2.BuilderAwareStrategy"/> when the object is being torn down.
1038
+ Execute the <see cref="M:Microsoft.Practices.ObjectBuilder2.IRequiresRecovery.Recover"/> method
1039
+ of everything in the recovery list. Recoveries will execute
1040
+ in the opposite order of add - it's a stack.
996
1041
  </summary>
997
1042
  </member>
998
- <member name="T:Microsoft.Practices.ObjectBuilder2.WeakRefDictionary`2">
1043
+ <member name="P:Microsoft.Practices.ObjectBuilder2.IRecoveryStack.Count">
999
1044
  <summary>
1000
- Represents a dictionary which stores the values as weak references instead of strong
1001
- references. Null values are supported.
1045
+ Return the number of recovery objects currently in the stack.
1002
1046
  </summary>
1003
- <typeparam name="TKey">The key type</typeparam>
1004
- <typeparam name="TValue">The value type</typeparam>
1005
1047
  </member>
1006
- <member name="M:Microsoft.Practices.ObjectBuilder2.WeakRefDictionary`2.Add(`0,`1)">
1048
+ <member name="M:Microsoft.Practices.ObjectBuilder2.RecoveryStack.Add(Microsoft.Practices.ObjectBuilder2.IRequiresRecovery)">
1007
1049
  <summary>
1008
- Gets the count of the number of items in the dictionary.
1050
+ Add a new <see cref="T:Microsoft.Practices.ObjectBuilder2.IRequiresRecovery"/> object to this
1051
+ list.
1009
1052
  </summary>
1010
- <value>
1011
- The count of the number of items in the dictionary.
1012
- </value>
1013
- <remarks>
1014
- Since the items in the dictionary are held by weak reference, the count value
1015
- cannot be relied upon to guarantee the number of objects that would be discovered via
1016
- enumeration. Treat the Count as an estimate only.
1017
- </remarks>
1053
+ <param name="recovery">Object to add.</param>
1018
1054
  </member>
1019
- <member name="M:Microsoft.Practices.ObjectBuilder2.WeakRefDictionary`2.ContainsKey(`0)">
1055
+ <member name="M:Microsoft.Practices.ObjectBuilder2.RecoveryStack.ExecuteRecovery">
1020
1056
  <summary>
1021
- Determines if the dictionary contains a value for the key.
1057
+ Execute the <see cref="M:Microsoft.Practices.ObjectBuilder2.IRequiresRecovery.Recover"/> method
1058
+ of everything in the recovery list. Recoveries will execute
1059
+ in the opposite order of add - it's a stack.
1022
1060
  </summary>
1023
- <param name="key">The key to look for.</param>
1024
- <returns>true if the key is contained in the dictionary; otherwise, false.</returns>
1025
1061
  </member>
1026
- <member name="M:Microsoft.Practices.ObjectBuilder2.WeakRefDictionary`2.GetEnumerator">
1062
+ <member name="P:Microsoft.Practices.ObjectBuilder2.RecoveryStack.Count">
1027
1063
  <summary>
1028
- Returns an enumerator that iterates through the dictionary.
1064
+ Return the number of recovery objects currently in the stack.
1029
1065
  </summary>
1030
- <returns>
1031
- An <see cref="T:System.Collections.IEnumerator"/> object that can be used to iterate through the dictionary.
1032
- </returns>
1033
1066
  </member>
1034
- <member name="M:Microsoft.Practices.ObjectBuilder2.WeakRefDictionary`2.Remove(`0)">
1067
+ <member name="T:Microsoft.Practices.ObjectBuilder2.Locator">
1035
1068
  <summary>
1036
- Removes an item from the dictionary.
1069
+ An implementation of <see cref="T:Microsoft.Practices.ObjectBuilder2.IReadableLocator"/> and <see cref="T:Microsoft.Practices.ObjectBuilder2.IReadWriteLocator"/>.
1037
1070
  </summary>
1038
- <param name="key">The key of the item to be removed.</param>
1039
- <returns>Returns true if the key was in the dictionary; return false otherwise.</returns>
1040
1071
  </member>
1041
- <member name="M:Microsoft.Practices.ObjectBuilder2.WeakRefDictionary`2.TryGet(`0,`1@)">
1072
+ <member name="T:Microsoft.Practices.ObjectBuilder2.ReadWriteLocator">
1042
1073
  <summary>
1043
- Attempts to get a value from the dictionary.
1074
+ Represents an abstract implementation of <see cref="T:Microsoft.Practices.ObjectBuilder2.IReadWriteLocator"/>.
1044
1075
  </summary>
1045
- <param name="key">The key</param>
1046
- <param name="value">The value</param>
1047
- <returns>Returns true if the value was present; false otherwise.</returns>
1048
1076
  </member>
1049
- <member name="P:Microsoft.Practices.ObjectBuilder2.WeakRefDictionary`2.Count">
1077
+ <member name="T:Microsoft.Practices.ObjectBuilder2.IReadWriteLocator">
1050
1078
  <summary>
1051
- Returns a count of the number of items in the dictionary.
1079
+ Represents a locator that can be read from and written to.
1052
1080
  </summary>
1053
1081
  <remarks>
1054
- Since the items in the dictionary are held by weak reference, the count value
1055
- cannot be relied upon to guarantee the number of objects that would be discovered via
1056
- enumeration. Treat the Count as an estimate only.
1082
+ <para>
1083
+ A locator is dictionary of keys to values, but it keeps the values with
1084
+ weak references, so that locating an object does not keep it alive. If you
1085
+ want to keep the object alive too, you should consider using an
1086
+ <see cref="T:Microsoft.Practices.ObjectBuilder2.ILifetimeContainer"/>.
1087
+ </para>
1088
+ <para>
1089
+ Locators have a built-in concept of hierarchy, so you can ask questions
1090
+ of a locator and tell it whether to return results from the current locator
1091
+ only, or whether to ask the parent locator when local lookups fail.</para>
1057
1092
  </remarks>
1058
1093
  </member>
1059
- <member name="P:Microsoft.Practices.ObjectBuilder2.WeakRefDictionary`2.Item(`0)">
1094
+ <member name="M:Microsoft.Practices.ObjectBuilder2.IReadWriteLocator.Add(System.Object,System.Object)">
1060
1095
  <summary>
1061
- Retrieves a value from the dictionary.
1096
+ Adds an object to the locator, with the given key.
1062
1097
  </summary>
1063
- <param name="key">The key to look for.</param>
1064
- <returns>The value in the dictionary.</returns>
1065
- <exception cref="T:System.Collections.Generic.KeyNotFoundException">Thrown when the key does exist in the dictionary.
1066
- Since the dictionary contains weak references, the key may have been removed by the
1067
- garbage collection of the object.</exception>
1098
+ <param name="key">The key to register the object with.</param>
1099
+ <param name="value">The object to be registered.</param>
1100
+ <exception cref="T:System.ArgumentNullException"><paramref name="key"/> or value are null.</exception>
1068
1101
  </member>
1069
- <member name="T:Microsoft.Practices.ObjectBuilder2.Properties.Resources">
1102
+ <member name="M:Microsoft.Practices.ObjectBuilder2.IReadWriteLocator.Remove(System.Object)">
1070
1103
  <summary>
1071
- A strongly-typed resource class, for looking up localized strings, etc.
1104
+ Removes an object from the locator.
1072
1105
  </summary>
1106
+ <param name="key">The key under which the object was registered.</param>
1107
+ <returns>
1108
+ Returns true if the object was found in the locator; returns
1109
+ false otherwise.
1110
+ </returns>
1111
+ <exception cref="T:System.ArgumentNullException"><paramref name="key"/> is null.</exception>
1073
1112
  </member>
1074
- <member name="P:Microsoft.Practices.ObjectBuilder2.Properties.Resources.ResourceManager">
1113
+ <member name="M:Microsoft.Practices.ObjectBuilder2.ReadWriteLocator.#ctor">
1075
1114
  <summary>
1076
- Returns the cached ResourceManager instance used by this class.
1115
+ Initialize a new instance of the <see cref="T:Microsoft.Practices.ObjectBuilder2.ReadWriteLocator"/> class.
1077
1116
  </summary>
1078
1117
  </member>
1079
- <member name="P:Microsoft.Practices.ObjectBuilder2.Properties.Resources.Culture">
1118
+ <member name="M:Microsoft.Practices.ObjectBuilder2.ReadWriteLocator.#ctor(Microsoft.Practices.ObjectBuilder2.IReadableLocator)">
1080
1119
  <summary>
1081
- Overrides the current thread's CurrentUICulture property for all
1082
- resource lookups using this strongly typed resource class.
1120
+ Initialize a new instance of the <see cref="T:Microsoft.Practices.ObjectBuilder2.ReadWriteLocator"/> class with a parent <see cref="T:Microsoft.Practices.ObjectBuilder2.IReadableLocator"/>.
1083
1121
  </summary>
1122
+ <param name="parentLocator">A parent <see cref="T:Microsoft.Practices.ObjectBuilder2.IReadableLocator"/>.</param>
1084
1123
  </member>
1085
- <member name="P:Microsoft.Practices.ObjectBuilder2.Properties.Resources.AmbiguousInjectionConstructor">
1124
+ <member name="M:Microsoft.Practices.ObjectBuilder2.ReadWriteLocator.Add(System.Object,System.Object)">
1086
1125
  <summary>
1087
- Looks up a localized string similar to The type {0} has multiple constructors of length {1}. Unable to disambiguate..
1126
+ Adds an object to the locator, with the given key.
1088
1127
  </summary>
1128
+ <param name="key">The key to register the object with.</param>
1129
+ <param name="value">The object to be registered.</param>
1130
+ <exception cref="T:System.ArgumentNullException"><paramref name="key"/> or value are null.</exception>
1089
1131
  </member>
1090
- <member name="P:Microsoft.Practices.ObjectBuilder2.Properties.Resources.BuildFailedException">
1132
+ <member name="M:Microsoft.Practices.ObjectBuilder2.ReadWriteLocator.Remove(System.Object)">
1091
1133
  <summary>
1092
- Looks up a localized string similar to The current build operation (build key {2}) failed: {3} (Strategy type {0}, index {1}).
1134
+ Removes an object from the locator.
1093
1135
  </summary>
1136
+ <param name="key">The key under which the object was registered.</param>
1137
+ <returns>
1138
+ Returns true if the object was found in the locator; returns
1139
+ false otherwise.
1140
+ </returns>
1141
+ <exception cref="T:System.ArgumentNullException"><paramref name="key"/> is null.</exception>
1094
1142
  </member>
1095
- <member name="P:Microsoft.Practices.ObjectBuilder2.Properties.Resources.CannotConstructInterface">
1143
+ <member name="P:Microsoft.Practices.ObjectBuilder2.ReadWriteLocator.ReadOnly">
1096
1144
  <summary>
1097
- Looks up a localized string similar to The current type, {0}, is an interface and cannot be constructed. Are you missing a type mapping?.
1145
+ Determines if the locator is read-only.
1098
1146
  </summary>
1147
+ <value>
1148
+ true if the locator is read-only; otherwise, false.
1149
+ </value>
1099
1150
  </member>
1100
- <member name="P:Microsoft.Practices.ObjectBuilder2.Properties.Resources.CannotExtractTypeFromBuildKey">
1151
+ <member name="M:Microsoft.Practices.ObjectBuilder2.Locator.#ctor">
1101
1152
  <summary>
1102
- Looks up a localized string similar to Cannot extract type from build key {0}..
1153
+ Initializes a new instance of the <see cref="T:Microsoft.Practices.ObjectBuilder2.Locator"/> class.
1103
1154
  </summary>
1104
1155
  </member>
1105
- <member name="P:Microsoft.Practices.ObjectBuilder2.Properties.Resources.CannotInjectMethodWithOutParam">
1156
+ <member name="M:Microsoft.Practices.ObjectBuilder2.Locator.#ctor(Microsoft.Practices.ObjectBuilder2.IReadableLocator)">
1106
1157
  <summary>
1107
- Looks up a localized string similar to The method {1} on type {0} has an out parameter. Injection cannot be performed..
1158
+ Initializes a new instance of the <see cref="T:Microsoft.Practices.ObjectBuilder2.Locator"/> class as a child of the <paramref name="parentLocator"/>.
1108
1159
  </summary>
1160
+ <param name="parentLocator">The parent locator.</param>
1109
1161
  </member>
1110
- <member name="P:Microsoft.Practices.ObjectBuilder2.Properties.Resources.CannotInjectOpenGenericMethod">
1162
+ <member name="M:Microsoft.Practices.ObjectBuilder2.Locator.Add(System.Object,System.Object)">
1111
1163
  <summary>
1112
- Looks up a localized string similar to The method {1} on type {0} is marked for injection, but it is an open generic method. Injection cannot be performed..
1164
+ Adds an object to the locator, with the given key.
1113
1165
  </summary>
1166
+ <param name="key">The key to register the object with.</param>
1167
+ <param name="value">The object to be registered.</param>
1168
+ <exception cref="T:System.ArgumentNullException">Key or value are null.</exception>
1114
1169
  </member>
1115
- <member name="P:Microsoft.Practices.ObjectBuilder2.Properties.Resources.ConstructorParameterResolutionFailed">
1170
+ <member name="M:Microsoft.Practices.ObjectBuilder2.Locator.Contains(System.Object)">
1116
1171
  <summary>
1117
- Looks up a localized string similar to The parameter {0} could not be resolved when attempting to call constructor {1}..
1172
+ Determine if the locator contains an object for the given key.
1118
1173
  </summary>
1174
+ <param name="key">The key to check.</param>
1175
+ <returns>
1176
+ true if the locator contains an object for the key; returns
1177
+ false otherwise.
1178
+ </returns>
1119
1179
  </member>
1120
- <member name="P:Microsoft.Practices.ObjectBuilder2.Properties.Resources.KeyAlreadyPresent">
1180
+ <member name="M:Microsoft.Practices.ObjectBuilder2.Locator.Get(System.Object)">
1121
1181
  <summary>
1122
- Looks up a localized string similar to An item with the given key is already present in the dictionary..
1182
+ Gets an object from the locator, registered with the given key.
1123
1183
  </summary>
1184
+ <param name="key">The key that the object is registered with.</param>
1185
+ <returns>The object, if found; null otherwise.</returns>
1186
+ <exception cref="T:System.ArgumentNullException">Key is null.</exception>
1124
1187
  </member>
1125
- <member name="P:Microsoft.Practices.ObjectBuilder2.Properties.Resources.MethodParameterResolutionFailed">
1188
+ <member name="M:Microsoft.Practices.ObjectBuilder2.Locator.GetEnumerator">
1126
1189
  <summary>
1127
- Looks up a localized string similar to The value for parameter &quot;{1}&quot; of method {0} could not be resolved. .
1190
+ Returns an enumerator that iterates through a locator.
1128
1191
  </summary>
1192
+ <returns>
1193
+ An <see cref="T:System.Collections.Generic.IEnumerator`1"/> object that can be used to iterate through the locator.
1194
+ </returns>
1129
1195
  </member>
1130
- <member name="P:Microsoft.Practices.ObjectBuilder2.Properties.Resources.MissingDependency">
1196
+ <member name="M:Microsoft.Practices.ObjectBuilder2.Locator.Remove(System.Object)">
1131
1197
  <summary>
1132
- Looks up a localized string similar to Could not resolve dependency for build key {0}..
1198
+ Removes an object from the locator.
1133
1199
  </summary>
1200
+ <param name="key">The key under which the object was registered.</param>
1201
+ <returns>
1202
+ Returns true if the object was found in the locator; returns
1203
+ false otherwise.
1204
+ </returns>
1205
+ <exception cref="T:System.ArgumentNullException">Key is null.</exception>
1134
1206
  </member>
1135
- <member name="P:Microsoft.Practices.ObjectBuilder2.Properties.Resources.MultipleInjectionConstructors">
1207
+ <member name="P:Microsoft.Practices.ObjectBuilder2.Locator.Count">
1136
1208
  <summary>
1137
- Looks up a localized string similar to The type {0} has multiple constructors marked with the InjectionConstructor attribute. Unable to disambiguate..
1209
+ Gets the number of items in the locator.
1138
1210
  </summary>
1211
+ <value>
1212
+ The number of items in the locator.
1213
+ </value>
1139
1214
  </member>
1140
- <member name="P:Microsoft.Practices.ObjectBuilder2.Properties.Resources.MustHaveOpenGenericType">
1215
+ <member name="T:Microsoft.Practices.ObjectBuilder2.DynamicMethodBuildPlanCreatorPolicy">
1141
1216
  <summary>
1142
- Looks up a localized string similar to The supplied type {0} must be an open generic type..
1217
+ An <see cref="T:Microsoft.Practices.ObjectBuilder2.IBuildPlanCreatorPolicy"/> implementation
1218
+ that constructs a build plan via dynamic IL emission.
1143
1219
  </summary>
1144
1220
  </member>
1145
- <member name="P:Microsoft.Practices.ObjectBuilder2.Properties.Resources.MustHaveSameNumberOfGenericArguments">
1221
+ <member name="M:Microsoft.Practices.ObjectBuilder2.DynamicMethodBuildPlanCreatorPolicy.#ctor(Microsoft.Practices.ObjectBuilder2.IStagedStrategyChain)">
1146
1222
  <summary>
1147
- Looks up a localized string similar to The supplied type {0} does not have the same number of generic arguments as the target type {1}..
1223
+ Construct a <see cref="T:Microsoft.Practices.ObjectBuilder2.DynamicMethodBuildPlanCreatorPolicy"/> that
1224
+ uses the given strategy chain to construct the build plan.
1148
1225
  </summary>
1226
+ <param name="strategies"></param>
1149
1227
  </member>
1150
- <member name="P:Microsoft.Practices.ObjectBuilder2.Properties.Resources.NoConstructorFound">
1228
+ <member name="M:Microsoft.Practices.ObjectBuilder2.DynamicMethodBuildPlanCreatorPolicy.CreatePlan(Microsoft.Practices.ObjectBuilder2.IBuilderContext,System.Object)">
1151
1229
  <summary>
1152
- Looks up a localized string similar to The type {0} does not have an accessible constructor..
1230
+ Construct a build plan.
1153
1231
  </summary>
1232
+ <param name="context">The current build context.</param>
1233
+ <param name="buildKey">The current build key.</param>
1234
+ <returns>The created build plan.</returns>
1154
1235
  </member>
1155
- <member name="P:Microsoft.Practices.ObjectBuilder2.Properties.Resources.PropertyValueResolutionFailed">
1236
+ <member name="T:Microsoft.Practices.ObjectBuilder2.IBuilderContext">
1156
1237
  <summary>
1157
- Looks up a localized string similar to The value for the property &quot;{0}&quot; could not be resolved..
1238
+ Represents the context in which a build-up or tear-down operation runs.
1158
1239
  </summary>
1159
1240
  </member>
1160
- <member name="P:Microsoft.Practices.ObjectBuilder2.Properties.Resources.ProvidedStringArgMustNotBeEmpty">
1241
+ <member name="M:Microsoft.Practices.ObjectBuilder2.IBuilderContext.CloneForNewBuild(System.Object,System.Object)">
1161
1242
  <summary>
1162
- Looks up a localized string similar to The provided string argument must not be empty..
1243
+ Create a new IBuilderContext which has the same strategies, locator, policies, and lifetime
1244
+ but a new build key and existing object. Used to execute recursive calls when
1245
+ building up dependencies.
1163
1246
  </summary>
1247
+ <param name="newBuildKey">Build key for new buildup.</param>
1248
+ <param name="newExistingObject">New exsting object for buildup.</param>
1249
+ <returns>The new context.</returns>
1164
1250
  </member>
1165
- <member name="T:Microsoft.Practices.ObjectBuilder2.Builder">
1251
+ <member name="P:Microsoft.Practices.ObjectBuilder2.IBuilderContext.Strategies">
1166
1252
  <summary>
1167
- An implementation of <see cref="T:Microsoft.Practices.ObjectBuilder2.IBuilder"/>. It contains all the default strategies shipped
1168
- with ObjectBuilder.
1253
+ Gets the head of the strategy chain.
1169
1254
  </summary>
1255
+ <returns>
1256
+ The strategy that's first in the chain; returns null if there are no
1257
+ strategies in the chain.
1258
+ </returns>
1170
1259
  </member>
1171
- <member name="T:Microsoft.Practices.ObjectBuilder2.IBuilder">
1260
+ <member name="P:Microsoft.Practices.ObjectBuilder2.IBuilderContext.Lifetime">
1172
1261
  <summary>
1173
- Represents the main interface for an object builder.
1262
+ Gets the <see cref="T:Microsoft.Practices.ObjectBuilder2.ILifetimeContainer"/> associated with the build.
1174
1263
  </summary>
1264
+ <value>
1265
+ The <see cref="T:Microsoft.Practices.ObjectBuilder2.ILifetimeContainer"/> associated with the build.
1266
+ </value>
1175
1267
  </member>
1176
- <member name="M:Microsoft.Practices.ObjectBuilder2.IBuilder.BuildUp(Microsoft.Practices.ObjectBuilder2.IReadWriteLocator,Microsoft.Practices.ObjectBuilder2.ILifetimeContainer,Microsoft.Practices.ObjectBuilder2.IPolicyList,Microsoft.Practices.ObjectBuilder2.IStrategyChain,System.Object,System.Object)">
1268
+ <member name="P:Microsoft.Practices.ObjectBuilder2.IBuilderContext.Locator">
1177
1269
  <summary>
1178
- Performs a build operation.
1270
+ Gets the locator available to the strategies.
1179
1271
  </summary>
1180
- <remarks>
1181
- This operation uses the strategies and permanent policies already configured
1182
- into the builder, combined with the optional transient policies, and starts a build
1183
- operation. Transient policies override any built-in policies, when present.
1184
- </remarks>
1185
- <param name="locator">The locator to be used for this build operation.</param>
1186
- <param name="lifetime">The <see cref="T:Microsoft.Practices.ObjectBuilder2.ILifetimeContainer"/> to use for this build operation.</param>
1187
- <param name="policies">
1188
- The transient policies to apply to this build. These
1189
- policies take precedence over any permanent policies built into the builder.
1190
- </param>
1191
- <param name="strategies">
1192
- The <see cref="T:Microsoft.Practices.ObjectBuilder2.IStrategyChain"/> to use for this build operation.
1193
- </param>
1194
- <param name="buildKey">The key of the object to build.</param>
1195
- <param name="existing">
1196
- The existing object to run the build chain on, if one exists.
1197
- If null is passed, a new object instance will typically be created by some strategy
1198
- in the chain.
1199
- </param>
1200
- <returns>The built object.</returns>
1272
+ <value>
1273
+ The locator available to the strategies.
1274
+ </value>
1201
1275
  </member>
1202
- <member name="M:Microsoft.Practices.ObjectBuilder2.IBuilder.BuildUp``1(Microsoft.Practices.ObjectBuilder2.IReadWriteLocator,Microsoft.Practices.ObjectBuilder2.ILifetimeContainer,Microsoft.Practices.ObjectBuilder2.IPolicyList,Microsoft.Practices.ObjectBuilder2.IStrategyChain,System.Object,System.Object)">
1276
+ <member name="P:Microsoft.Practices.ObjectBuilder2.IBuilderContext.OriginalBuildKey">
1203
1277
  <summary>
1204
- Performs a build operation.
1278
+ Gets the original build key for the build operation.
1205
1279
  </summary>
1206
- <remarks>
1207
- This operation uses the strategies and permanent policies already configured
1208
- into the builder, combined with the optional transient policies, and starts a build
1209
- operation. Transient policies override any built-in policies, when present.
1210
- </remarks>
1211
- <typeparam name="TTypeToBuild">The type to build.</typeparam>
1212
- <param name="locator">The locator to be used for this build operation.</param>
1213
- <param name="lifetime">The <see cref="T:Microsoft.Practices.ObjectBuilder2.ILifetimeContainer"/> to use for this build operation.</param>
1214
- <param name="policies">
1215
- The transient policies to apply to this build. These
1216
- policies take precedence over any permanent policies built into the builder.
1217
- </param>
1218
- <param name="strategies">
1219
- The <see cref="T:Microsoft.Practices.ObjectBuilder2.IStrategyChain"/> to use for this build operation.
1220
- </param>
1221
- <param name="buildKey">The key of the object to build.</param>
1222
- <param name="existing">
1223
- The existing object to run the build chain on, if one exists.
1224
- If null is passed, a new object instance will typically be created by some strategy
1225
- in the chain.
1226
- </param>
1227
- <returns>The built object.</returns>
1280
+ <value>
1281
+ The original build key for the build operation.
1282
+ </value>
1228
1283
  </member>
1229
- <member name="M:Microsoft.Practices.ObjectBuilder2.IBuilder.TearDown``1(Microsoft.Practices.ObjectBuilder2.IReadWriteLocator,Microsoft.Practices.ObjectBuilder2.ILifetimeContainer,Microsoft.Practices.ObjectBuilder2.IPolicyList,Microsoft.Practices.ObjectBuilder2.IStrategyChain,``0)">
1284
+ <member name="P:Microsoft.Practices.ObjectBuilder2.IBuilderContext.PersistentPolicies">
1230
1285
  <summary>
1231
- Performs an unbuild operation.
1286
+ The set of policies that were passed into this context.
1232
1287
  </summary>
1233
- <typeparam name="TItem">The type to unbuild. If not provided, it will be inferred from the
1234
- type of item.
1235
- </typeparam>
1236
- <param name="locator">The locator to be used for this build operation.</param>
1237
- <param name="lifetime">The <see cref="T:Microsoft.Practices.ObjectBuilder2.ILifetimeContainer"/> to use for this build operation.</param>
1238
- <param name="policies">
1239
- The transient policies to apply to this build. These
1240
- policies take precedence over any permanent policies built into the builder.
1241
- </param>
1242
- <param name="strategies">
1243
- The <see cref="T:Microsoft.Practices.ObjectBuilder2.IStrategyChain"/> to use for this build operation.
1244
- </param>
1245
- <param name="item">The item to tear down.</param>
1246
- <returns>The torn down item.</returns>
1288
+ <remarks>This returns the policies passed into the context.
1289
+ Policies added here will remain after buildup completes.</remarks>
1290
+ <value>The persistent policies for the current context.</value>
1247
1291
  </member>
1248
- <member name="M:Microsoft.Practices.ObjectBuilder2.Builder.BuildUp(Microsoft.Practices.ObjectBuilder2.IReadWriteLocator,Microsoft.Practices.ObjectBuilder2.ILifetimeContainer,Microsoft.Practices.ObjectBuilder2.IPolicyList,Microsoft.Practices.ObjectBuilder2.IStrategyChain,System.Object,System.Object)">
1292
+ <member name="P:Microsoft.Practices.ObjectBuilder2.IBuilderContext.Policies">
1249
1293
  <summary>
1250
- Performs a build operation.
1294
+ Gets the policies for the current context.
1251
1295
  </summary>
1252
- <remarks>
1253
- This operation uses the strategies and permanent policies already configured
1254
- into the builder, combined with the optional transient policies, and starts a build
1255
- operation. Transient policies override any built-in policies, when present.
1256
- </remarks>
1257
- <param name="locator">The locator to be used for this build operation.</param>
1258
- <param name="lifetime">The <see cref="T:Microsoft.Practices.ObjectBuilder2.ILifetimeContainer"/> to use for this build operation.</param>
1259
- <param name="policies">
1260
- The transient policies to apply to this build. These
1261
- policies take precedence over any permanent policies built into the builder.
1262
- </param>
1263
- <param name="strategies">
1264
- The <see cref="T:Microsoft.Practices.ObjectBuilder2.IStrategyChain"/> to use for this build operation.
1265
- </param>
1266
- <param name="buildKey">The key of the object to build.</param>
1267
- <param name="existing">
1268
- The existing object to run the build chain on, if one exists.
1269
- If null is passed, a new object instance will typically be created by some strategy
1270
- in the chain.
1271
- </param>
1272
- <returns>The built object.</returns>
1296
+ <remarks>Any policies added to this object are transient
1297
+ and will be erased at the end of the buildup.</remarks>
1298
+ <value>
1299
+ The policies for the current context.
1300
+ </value>
1273
1301
  </member>
1274
- <member name="M:Microsoft.Practices.ObjectBuilder2.Builder.BuildUp``1(Microsoft.Practices.ObjectBuilder2.IReadWriteLocator,Microsoft.Practices.ObjectBuilder2.ILifetimeContainer,Microsoft.Practices.ObjectBuilder2.IPolicyList,Microsoft.Practices.ObjectBuilder2.IStrategyChain,System.Object,System.Object)">
1302
+ <member name="P:Microsoft.Practices.ObjectBuilder2.IBuilderContext.RecoveryStack">
1275
1303
  <summary>
1276
- Performs a build operation.
1304
+ Gets the collection of <see cref="T:Microsoft.Practices.ObjectBuilder2.IRequiresRecovery"/> objects
1305
+ that need to execute in event of an exception.
1277
1306
  </summary>
1278
- <remarks>
1279
- This operation uses the strategies and permanent policies already configured
1280
- into the builder, combined with the optional transient policies, and starts a build
1281
- operation. Transient policies override any built-in policies, when present.
1282
- </remarks>
1283
- <typeparam name="TTypeToBuild">The type to build.</typeparam>
1284
- <param name="locator">The locator to be used for this build operation.</param>
1285
- <param name="lifetime">The <see cref="T:Microsoft.Practices.ObjectBuilder2.ILifetimeContainer"/> to use for this build operation.</param>
1286
- <param name="policies">
1287
- The transient policies to apply to this build. These
1288
- policies take precedence over any permanent policies built into the builder.
1289
- </param>
1290
- <param name="strategies">
1291
- The <see cref="T:Microsoft.Practices.ObjectBuilder2.IStrategyChain"/> to use for this build operation.
1292
- </param>
1293
- <param name="buildKey">The key of the object to build.</param>
1294
- <param name="existing">
1295
- The existing object to run the build chain on, if one exists.
1296
- If null is passed, a new object instance will typically be created by some strategy
1297
- in the chain.
1298
- </param>
1299
- <returns>The built object.</returns>
1300
1307
  </member>
1301
- <member name="M:Microsoft.Practices.ObjectBuilder2.Builder.TearDown``1(Microsoft.Practices.ObjectBuilder2.IReadWriteLocator,Microsoft.Practices.ObjectBuilder2.ILifetimeContainer,Microsoft.Practices.ObjectBuilder2.IPolicyList,Microsoft.Practices.ObjectBuilder2.IStrategyChain,``0)">
1308
+ <member name="P:Microsoft.Practices.ObjectBuilder2.IBuilderContext.BuildKey">
1302
1309
  <summary>
1303
- Performs an unbuild operation.
1310
+ Get the current build key for the current build operation.
1304
1311
  </summary>
1305
- <typeparam name="TItem">The type to unbuild. If not provided, it will be inferred from the
1306
- type of item.
1307
- </typeparam>
1308
- <param name="locator">The locator to be used for this build operation.</param>
1309
- <param name="lifetime">The <see cref="T:Microsoft.Practices.ObjectBuilder2.ILifetimeContainer"/> to use for this build operation.</param>
1310
- <param name="policies">
1311
- The transient policies to apply to this build. These
1312
- policies take precedence over any permanent policies built into the builder.
1313
- </param>
1314
- <param name="strategies">
1315
- The <see cref="T:Microsoft.Practices.ObjectBuilder2.IStrategyChain"/> to use for this build operation.
1316
- </param>
1317
- <param name="item">The item to tear down.</param>
1318
- <returns>The torn down item.</returns>
1319
1312
  </member>
1320
- <member name="T:Microsoft.Practices.ObjectBuilder2.LifetimeStrategy">
1313
+ <member name="P:Microsoft.Practices.ObjectBuilder2.IBuilderContext.Existing">
1321
1314
  <summary>
1322
- An <see cref="T:Microsoft.Practices.ObjectBuilder2.IBuilderStrategy"/> implementation that uses
1323
- a <see cref="T:Microsoft.Practices.ObjectBuilder2.ILifetimePolicy"/> to figure out if an object
1324
- has already been created and to update or remove that
1325
- object from some backing store.
1315
+ The current object being built up or torn down.
1326
1316
  </summary>
1317
+ <value>
1318
+ The current object being manipulated by the build operation. May
1319
+ be null if the object hasn't been created yet.</value>
1327
1320
  </member>
1328
- <member name="M:Microsoft.Practices.ObjectBuilder2.LifetimeStrategy.PreBuildUp(Microsoft.Practices.ObjectBuilder2.IBuilderContext)">
1321
+ <member name="P:Microsoft.Practices.ObjectBuilder2.IBuilderContext.BuildComplete">
1329
1322
  <summary>
1330
- Called during the chain of responsibility for a build operation. The
1331
- PreBuildUp method is called when the chain is being executed in the
1332
- forward direction.
1323
+ Flag indicating if the build operation should continue.
1333
1324
  </summary>
1334
- <param name="context">Context of the build operation.</param>
1325
+ <value>true means that building should not call any more
1326
+ strategies, false means continue to the next strategy.</value>
1335
1327
  </member>
1336
- <member name="M:Microsoft.Practices.ObjectBuilder2.LifetimeStrategy.PostBuildUp(Microsoft.Practices.ObjectBuilder2.IBuilderContext)">
1328
+ <member name="T:Microsoft.Practices.ObjectBuilder2.BuilderContext">
1337
1329
  <summary>
1338
- Called during the chain of responsibility for a build operation. The
1339
- PostBuildUp method is called when the chain has finished the PreBuildUp
1340
- phase and executes in reverse order from the PreBuildUp calls.
1330
+ Represents the context in which a build-up or tear-down operation runs.
1341
1331
  </summary>
1342
- <param name="context">Context of the build operation.</param>
1332
+ </member>
1333
+ <member name="M:Microsoft.Practices.ObjectBuilder2.BuilderContext.#ctor">
1334
+ <summary>
1335
+ Initialize a new instance of the <see cref="T:Microsoft.Practices.ObjectBuilder2.BuilderContext"/> class.
1336
+ </summary>
1337
+ </member>
1338
+ <member name="M:Microsoft.Practices.ObjectBuilder2.BuilderContext.#ctor(Microsoft.Practices.ObjectBuilder2.IStrategyChain,Microsoft.Practices.ObjectBuilder2.IReadWriteLocator,Microsoft.Practices.ObjectBuilder2.ILifetimeContainer,Microsoft.Practices.ObjectBuilder2.IPolicyList,System.Object,System.Object)">
1339
+ <summary>
1340
+ Initialize a new instance of the <see cref="T:Microsoft.Practices.ObjectBuilder2.BuilderContext"/> class with a <see cref="T:Microsoft.Practices.ObjectBuilder2.IStrategyChain"/>,
1341
+ <see cref="T:Microsoft.Practices.ObjectBuilder2.IReadWriteLocator"/>, <see cref="T:Microsoft.Practices.ObjectBuilder2.ILifetimeContainer"/>, <see cref="T:Microsoft.Practices.ObjectBuilder2.IPolicyList"/> and the
1342
+ build key used to start this build operation.
1343
+ </summary>
1344
+ <param name="chain">The <see cref="T:Microsoft.Practices.ObjectBuilder2.IStrategyChain"/> to use for this context.</param>
1345
+ <param name="locator">The <see cref="T:Microsoft.Practices.ObjectBuilder2.IReadWriteLocator"/> to use for this context.</param>
1346
+ <param name="lifetime">The <see cref="T:Microsoft.Practices.ObjectBuilder2.ILifetimeContainer"/> to use for this context.</param>
1347
+ <param name="policies">The <see cref="T:Microsoft.Practices.ObjectBuilder2.IPolicyList"/> to use for this context.</param>
1348
+ <param name="originalBuildKey">Build key to start building.</param>
1349
+ <param name="existing">The existing object to build up.</param>
1350
+ </member>
1351
+ <member name="M:Microsoft.Practices.ObjectBuilder2.BuilderContext.#ctor(Microsoft.Practices.ObjectBuilder2.IStrategyChain,Microsoft.Practices.ObjectBuilder2.IReadWriteLocator,Microsoft.Practices.ObjectBuilder2.ILifetimeContainer,Microsoft.Practices.ObjectBuilder2.IPolicyList,Microsoft.Practices.ObjectBuilder2.IPolicyList,System.Object,System.Object)">
1352
+ <summary>
1353
+ Create a new <see cref="T:Microsoft.Practices.ObjectBuilder2.BuilderContext"/> using the explicitly provided
1354
+ values.
1355
+ </summary>
1356
+ <param name="chain">The <see cref="T:Microsoft.Practices.ObjectBuilder2.IStrategyChain"/> to use for this context.</param>
1357
+ <param name="locator">The <see cref="T:Microsoft.Practices.ObjectBuilder2.IReadWriteLocator"/> to use for this context.</param>
1358
+ <param name="lifetime">The <see cref="T:Microsoft.Practices.ObjectBuilder2.ILifetimeContainer"/> to use for this context.</param>
1359
+ <param name="persistentPolicies">The set of persistent policies to use for this context.</param>
1360
+ <param name="transientPolicies">The set of transient policies to use for this context. It is
1361
+ the caller's responsibility to ensure that the transient and persistent policies are properly
1362
+ combined.</param>
1363
+ <param name="buildKey">Build key for this context.</param>
1364
+ <param name="existing">Existing object to build up.</param>
1365
+ </member>
1366
+ <member name="M:Microsoft.Practices.ObjectBuilder2.BuilderContext.CloneForNewBuild(System.Object,System.Object)">
1367
+ <summary>
1368
+ Create a new IBuilderContext which has the same strategies, locator, policies, and lifetime
1369
+ but a new build key and existing object. Used to execute recursive calls when
1370
+ building up dependencies.
1371
+ </summary>
1372
+ <param name="newBuildKey">Build key for new buildup.</param>
1373
+ <param name="newExistingObject">New exsting object for buildup.</param>
1374
+ <returns>The new context.</returns>
1375
+ </member>
1376
+ <member name="M:Microsoft.Practices.ObjectBuilder2.BuilderContext.NewBuildUp``1(Microsoft.Practices.ObjectBuilder2.IBuilderContext)">
1377
+ <summary>
1378
+ A convenience method to do a new buildup operation on an existing context.
1379
+ </summary>
1380
+ <remarks>This helper is specific to NamedTypeBuildKey.</remarks>
1381
+ <typeparam name="T">Type to return from the buildup.</typeparam>
1382
+ <param name="context">Existing context.</param>
1383
+ <returns>The built up object.</returns>
1384
+ </member>
1385
+ <member name="P:Microsoft.Practices.ObjectBuilder2.BuilderContext.Strategies">
1386
+ <summary>
1387
+ Gets the head of the strategy chain.
1388
+ </summary>
1389
+ <returns>
1390
+ The strategy that's first in the chain; returns null if there are no
1391
+ strategies in the chain.
1392
+ </returns>
1393
+ </member>
1394
+ <member name="P:Microsoft.Practices.ObjectBuilder2.BuilderContext.BuildKey">
1395
+ <summary>
1396
+ Get the current build key for the current build operation.
1397
+ </summary>
1398
+ </member>
1399
+ <member name="P:Microsoft.Practices.ObjectBuilder2.BuilderContext.Existing">
1400
+ <summary>
1401
+ The current object being built up or torn down.
1402
+ </summary>
1403
+ <value>
1404
+ The current object being manipulated by the build operation. May
1405
+ be null if the object hasn't been created yet.</value>
1406
+ </member>
1407
+ <member name="P:Microsoft.Practices.ObjectBuilder2.BuilderContext.Lifetime">
1408
+ <summary>
1409
+ Gets the <see cref="T:Microsoft.Practices.ObjectBuilder2.ILifetimeContainer"/> associated with the build.
1410
+ </summary>
1411
+ <value>
1412
+ The <see cref="T:Microsoft.Practices.ObjectBuilder2.ILifetimeContainer"/> associated with the build.
1413
+ </value>
1414
+ </member>
1415
+ <member name="P:Microsoft.Practices.ObjectBuilder2.BuilderContext.Locator">
1416
+ <summary>
1417
+ Gets the locator available to the strategies.
1418
+ </summary>
1419
+ <value>
1420
+ The locator available to the strategies.
1421
+ </value>
1422
+ </member>
1423
+ <member name="P:Microsoft.Practices.ObjectBuilder2.BuilderContext.OriginalBuildKey">
1424
+ <summary>
1425
+ Gets the original build key for the build operation.
1426
+ </summary>
1427
+ <value>
1428
+ The original build key for the build operation.
1429
+ </value>
1430
+ </member>
1431
+ <member name="P:Microsoft.Practices.ObjectBuilder2.BuilderContext.PersistentPolicies">
1432
+ <summary>
1433
+ The set of policies that were passed into this context.
1434
+ </summary>
1435
+ <remarks>This returns the policies passed into the context.
1436
+ Policies added here will remain after buildup completes.</remarks>
1437
+ <value>The persistent policies for the current context.</value>
1438
+ </member>
1439
+ <member name="P:Microsoft.Practices.ObjectBuilder2.BuilderContext.Policies">
1440
+ <summary>
1441
+ Gets the policies for the current context.
1442
+ </summary>
1443
+ <remarks>
1444
+ Any modifications will be transient (meaning, they will be forgotten when
1445
+ the outer BuildUp for this context is finished executing).
1446
+ </remarks>
1447
+ <value>
1448
+ The policies for the current context.
1449
+ </value>
1450
+ </member>
1451
+ <member name="P:Microsoft.Practices.ObjectBuilder2.BuilderContext.RecoveryStack">
1452
+ <summary>
1453
+ Gets the collection of <see cref="T:Microsoft.Practices.ObjectBuilder2.IRequiresRecovery"/> objects
1454
+ that need to execute in event of an exception.
1455
+ </summary>
1456
+ </member>
1457
+ <member name="P:Microsoft.Practices.ObjectBuilder2.BuilderContext.BuildComplete">
1458
+ <summary>
1459
+ Flag indicating if the build operation should continue.
1460
+ </summary>
1461
+ <value>true means that building should not call any more
1462
+ strategies, false means continue to the next strategy.</value>
1343
1463
  </member>
1344
1464
  <member name="T:Microsoft.Practices.ObjectBuilder2.PolicyList">
1345
1465
  <summary>
@@ -1600,98 +1720,52 @@
1600
1720
  The number of items in the locator.
1601
1721
  </value>
1602
1722
  </member>
1603
- <member name="T:Microsoft.Practices.ObjectBuilder2.FixedTypeResolverPolicy">
1723
+ <member name="T:Microsoft.Practices.ObjectBuilder2.ConstructorSelectorPolicyBase`1">
1604
1724
  <summary>
1605
- An implementation of <see cref="T:Microsoft.Practices.ObjectBuilder2.IDependencyResolverPolicy"/> that
1606
- calls back into the build chain to build up the dependency, passing
1607
- a type given at compile time as its build key.
1725
+ Base class that provides an implementation of <see cref="T:Microsoft.Practices.ObjectBuilder2.IConstructorSelectorPolicy"/>
1726
+ which lets you override how the parameter resolvers are created.
1608
1727
  </summary>
1609
1728
  </member>
1610
- <member name="T:Microsoft.Practices.ObjectBuilder2.IDependencyResolverPolicy">
1729
+ <member name="T:Microsoft.Practices.ObjectBuilder2.IConstructorSelectorPolicy">
1611
1730
  <summary>
1612
- A <see cref="T:Microsoft.Practices.ObjectBuilder2.IBuilderPolicy"/> that is used at build plan execution time
1613
- to resolve a dependent value.
1731
+ A <see cref="T:Microsoft.Practices.ObjectBuilder2.IBuilderPolicy"/> that, when implemented,
1732
+ will determine which constructor to call from the build plan.
1614
1733
  </summary>
1615
1734
  </member>
1616
- <member name="M:Microsoft.Practices.ObjectBuilder2.IDependencyResolverPolicy.Resolve(Microsoft.Practices.ObjectBuilder2.IBuilderContext)">
1735
+ <member name="M:Microsoft.Practices.ObjectBuilder2.IConstructorSelectorPolicy.SelectConstructor(Microsoft.Practices.ObjectBuilder2.IBuilderContext)">
1617
1736
  <summary>
1618
- Get the value for a dependency.
1737
+ Choose the constructor to call for the given type.
1619
1738
  </summary>
1620
- <param name="context">Current build context.</param>
1621
- <returns>The value for the dependency.</returns>
1739
+ <param name="context">Current build context</param>
1740
+ <returns>The chosen constructor.</returns>
1622
1741
  </member>
1623
- <member name="M:Microsoft.Practices.ObjectBuilder2.FixedTypeResolverPolicy.#ctor(System.Type)">
1624
- <summary>
1625
- Create a new instance storing the given type.
1626
- </summary>
1627
- <param name="typeToBuild">Type to resolve.</param>
1628
- </member>
1629
- <member name="M:Microsoft.Practices.ObjectBuilder2.FixedTypeResolverPolicy.Resolve(Microsoft.Practices.ObjectBuilder2.IBuilderContext)">
1630
- <summary>
1631
- Get the value for a dependency.
1632
- </summary>
1633
- <param name="context">Current build context.</param>
1634
- <returns>The value for the dependency.</returns>
1635
- </member>
1636
- <member name="T:Microsoft.Practices.ObjectBuilder2.DependencyResolverTrackerPolicy">
1637
- <summary>
1638
- Implementation of <see cref="T:Microsoft.Practices.ObjectBuilder2.IDependencyResolverTrackerPolicy"/>.
1639
- </summary>
1640
- </member>
1641
- <member name="T:Microsoft.Practices.ObjectBuilder2.IDependencyResolverTrackerPolicy">
1642
- <summary>
1643
- A builder policy that lets you keep track of the current
1644
- resolvers and will remove them from the given policy set.
1645
- </summary>
1646
- </member>
1647
- <member name="M:Microsoft.Practices.ObjectBuilder2.IDependencyResolverTrackerPolicy.AddResolverKey(System.Object)">
1648
- <summary>
1649
- Add a new resolver to track by key.
1650
- </summary>
1651
- <param name="key">Key that was used to add the resolver to the policy set.</param>
1652
- </member>
1653
- <member name="M:Microsoft.Practices.ObjectBuilder2.IDependencyResolverTrackerPolicy.RemoveResolvers(Microsoft.Practices.ObjectBuilder2.IPolicyList)">
1654
- <summary>
1655
- Remove the currently tracked resolvers from the given policy list.
1656
- </summary>
1657
- <param name="policies">Policy list to remove the resolvers from.</param>
1658
- </member>
1659
- <member name="M:Microsoft.Practices.ObjectBuilder2.DependencyResolverTrackerPolicy.AddResolverKey(System.Object)">
1660
- <summary>
1661
- Add a new resolver to track by key.
1662
- </summary>
1663
- <param name="key">Key that was used to add the resolver to the policy set.</param>
1664
- </member>
1665
- <member name="M:Microsoft.Practices.ObjectBuilder2.DependencyResolverTrackerPolicy.RemoveResolvers(Microsoft.Practices.ObjectBuilder2.IPolicyList)">
1666
- <summary>
1667
- Remove the currently tracked resolvers from the given policy list.
1668
- </summary>
1669
- <param name="policies">Policy list to remove the resolvers from.</param>
1670
- </member>
1671
- <member name="M:Microsoft.Practices.ObjectBuilder2.DependencyResolverTrackerPolicy.GetTracker(Microsoft.Practices.ObjectBuilder2.IPolicyList,System.Object)">
1672
- <summary>
1673
- Get an instance that implements <see cref="T:Microsoft.Practices.ObjectBuilder2.IDependencyResolverTrackerPolicy"/>,
1674
- either the current one in the policy set or creating a new one if it doesn't
1675
- exist.
1676
- </summary>
1677
- <param name="policies">Policy list to look up from.</param>
1678
- <param name="buildKey">Build key to track.</param>
1679
- <returns>The resolver tracker.</returns>
1742
+ <member name="M:Microsoft.Practices.ObjectBuilder2.ConstructorSelectorPolicyBase`1.SelectConstructor(Microsoft.Practices.ObjectBuilder2.IBuilderContext)">
1743
+ <summary>
1744
+ Choose the constructor to call for the given type.
1745
+ </summary>
1746
+ <param name="context">Current build context.</param>
1747
+ <returns>The chosen constructor.</returns>
1748
+ <exception cref="T:System.InvalidOperationException">Thrown when the constructor to choose is ambiguous.</exception>
1680
1749
  </member>
1681
- <member name="M:Microsoft.Practices.ObjectBuilder2.DependencyResolverTrackerPolicy.TrackKey(Microsoft.Practices.ObjectBuilder2.IPolicyList,System.Object,System.Object)">
1750
+ <member name="M:Microsoft.Practices.ObjectBuilder2.ConstructorSelectorPolicyBase`1.CreateResolver(System.Reflection.ParameterInfo)">
1682
1751
  <summary>
1683
- Add a key to be tracked to the current tracker.
1752
+ Create a <see cref="T:Microsoft.Practices.ObjectBuilder2.IDependencyResolverPolicy"/> instance for the given
1753
+ <see cref="T:System.Reflection.ParameterInfo"/>.
1684
1754
  </summary>
1685
- <param name="policies">Policy list containing the resolvers and trackers.</param>
1686
- <param name="buildKey">Build key for the resolvers being tracked.</param>
1687
- <param name="resolverKey">Key for the resolver.</param>
1755
+ <param name="param">Parameter to create the resolver for.</param>
1756
+ <returns>The resolver object.</returns>
1688
1757
  </member>
1689
- <member name="M:Microsoft.Practices.ObjectBuilder2.DependencyResolverTrackerPolicy.RemoveResolvers(Microsoft.Practices.ObjectBuilder2.IPolicyList,System.Object)">
1758
+ <member name="M:Microsoft.Practices.ObjectBuilder2.ConstructorSelectorPolicyBase`1.ConstructorLengthComparer.Compare(System.Reflection.ConstructorInfo,System.Reflection.ConstructorInfo)">
1690
1759
  <summary>
1691
- Remove the resolvers for the given build key.
1760
+ Compares two objects and returns a value indicating whether one is less than, equal to, or greater than the other.
1692
1761
  </summary>
1693
- <param name="policies">Policy list containing the build key.</param>
1694
- <param name="buildKey">Build key.</param>
1762
+
1763
+ <returns>
1764
+ Value Condition Less than zerox is less than y.Zerox equals y.Greater than zerox is greater than y.
1765
+ </returns>
1766
+
1767
+ <param name="y">The second object to compare.</param>
1768
+ <param name="x">The first object to compare.</param>
1695
1769
  </member>
1696
1770
  <member name="T:Microsoft.Practices.ObjectBuilder2.BuilderStage">
1697
1771
  <summary>
@@ -1727,14 +1801,20 @@
1727
1801
  to discover when its initialization stage has been completed.
1728
1802
  </summary>
1729
1803
  </member>
1730
- <member name="T:Microsoft.Practices.ObjectBuilder2.DynamicMethodCallStrategy">
1804
+ <member name="T:Microsoft.Practices.ObjectBuilder2.BuilderAwareStrategy">
1731
1805
  <summary>
1732
- A <see cref="T:Microsoft.Practices.ObjectBuilder2.BuilderStrategy"/> that generates IL to call
1733
- chosen methods (as specified by the current <see cref="T:Microsoft.Practices.ObjectBuilder2.IMethodSelectorPolicy"/>)
1734
- as part of object build up.
1806
+ Implementation of <see cref="T:Microsoft.Practices.ObjectBuilder2.IBuilderStrategy"/> which will notify an object about
1807
+ the completion of a <see cref="M:Microsoft.Practices.ObjectBuilder2.IBuilder.BuildUp(Microsoft.Practices.ObjectBuilder2.IReadWriteLocator,Microsoft.Practices.ObjectBuilder2.ILifetimeContainer,Microsoft.Practices.ObjectBuilder2.IPolicyList,Microsoft.Practices.ObjectBuilder2.IStrategyChain,System.Object,System.Object)"/> operation, or start of a
1808
+ <see cref="M:Microsoft.Practices.ObjectBuilder2.IBuilder.TearDown``1(Microsoft.Practices.ObjectBuilder2.IReadWriteLocator,Microsoft.Practices.ObjectBuilder2.ILifetimeContainer,Microsoft.Practices.ObjectBuilder2.IPolicyList,Microsoft.Practices.ObjectBuilder2.IStrategyChain,``0)"/> operation.
1735
1809
  </summary>
1810
+ <remarks>
1811
+ This strategy checks the object that is passing through the builder chain to see if it
1812
+ implements IBuilderAware and if it does, it will call <see cref="M:Microsoft.Practices.ObjectBuilder2.IBuilderAware.OnBuiltUp(System.Object)"/>
1813
+ and <see cref="M:Microsoft.Practices.ObjectBuilder2.IBuilderAware.OnTearingDown"/>. This strategy is meant to be used from the
1814
+ <see cref="F:Microsoft.Practices.ObjectBuilder2.BuilderStage.PostInitialization"/> stage.
1815
+ </remarks>
1736
1816
  </member>
1737
- <member name="M:Microsoft.Practices.ObjectBuilder2.DynamicMethodCallStrategy.PreBuildUp(Microsoft.Practices.ObjectBuilder2.IBuilderContext)">
1817
+ <member name="M:Microsoft.Practices.ObjectBuilder2.BuilderAwareStrategy.PreBuildUp(Microsoft.Practices.ObjectBuilder2.IBuilderContext)">
1738
1818
  <summary>
1739
1819
  Called during the chain of responsibility for a build operation. The
1740
1820
  PreBuildUp method is called when the chain is being executed in the
@@ -1742,190 +1822,324 @@
1742
1822
  </summary>
1743
1823
  <param name="context">Context of the build operation.</param>
1744
1824
  </member>
1745
- <member name="M:Microsoft.Practices.ObjectBuilder2.DynamicMethodCallStrategy.ThrowOnParameterResolveFailed(System.Exception,System.String,System.String)">
1825
+ <member name="M:Microsoft.Practices.ObjectBuilder2.BuilderAwareStrategy.PreTearDown(Microsoft.Practices.ObjectBuilder2.IBuilderContext)">
1746
1826
  <summary>
1747
- A helper method used by the generated IL to throw an exception
1748
- when an injection method parameter could not be resolved.
1827
+ Called during the chain of responsibility for a teardown operation. The
1828
+ PreTearDown method is called when the chain is being executed in the
1829
+ forward direction.
1749
1830
  </summary>
1750
- <param name="inner">Exception that provides the failure info.</param>
1751
- <param name="methodName">Name of the method that was going to be called.</param>
1752
- <param name="parameterName">Parameter that failed to resolve.</param>
1831
+ <param name="context">Context of the teardown operation.</param>
1753
1832
  </member>
1754
- <member name="T:Microsoft.Practices.ObjectBuilder2.RecoveryStack">
1833
+ <member name="T:Microsoft.Practices.ObjectBuilder2.NamedTypeBuildKey">
1755
1834
  <summary>
1756
- An implementation of <see cref="T:Microsoft.Practices.ObjectBuilder2.IRecoveryStack"/>.
1835
+ Build key used to combine a type object with a string name. Used by
1836
+ ObjectBuilder to indicate exactly what is being built.
1757
1837
  </summary>
1758
1838
  </member>
1759
- <member name="T:Microsoft.Practices.ObjectBuilder2.IRecoveryStack">
1839
+ <member name="T:Microsoft.Practices.ObjectBuilder2.IBuildKey">
1760
1840
  <summary>
1761
- Data structure that stores the set of <see cref="T:Microsoft.Practices.ObjectBuilder2.IRequiresRecovery"/>
1762
- objects and executes them when requested.
1841
+ Represents a build key based on type.
1763
1842
  </summary>
1764
1843
  </member>
1765
- <member name="M:Microsoft.Practices.ObjectBuilder2.IRecoveryStack.Add(Microsoft.Practices.ObjectBuilder2.IRequiresRecovery)">
1844
+ <member name="M:Microsoft.Practices.ObjectBuilder2.IBuildKey.ReplaceType(System.Type)">
1766
1845
  <summary>
1767
- Add a new <see cref="T:Microsoft.Practices.ObjectBuilder2.IRequiresRecovery"/> object to this
1768
- list.
1846
+ Construct a new build key object with the current type
1847
+ replaced with the specified <paramref name="newType"/>.
1769
1848
  </summary>
1770
- <param name="recovery">Object to add.</param>
1849
+ <remarks>This method creates a new build key object, the original is unchanged.</remarks>
1850
+ <param name="newType">New type to place in the build key.</param>
1851
+ <returns>The new build key.</returns>
1771
1852
  </member>
1772
- <member name="M:Microsoft.Practices.ObjectBuilder2.IRecoveryStack.ExecuteRecovery">
1853
+ <member name="P:Microsoft.Practices.ObjectBuilder2.IBuildKey.Type">
1773
1854
  <summary>
1774
- Execute the <see cref="M:Microsoft.Practices.ObjectBuilder2.IRequiresRecovery.Recover"/> method
1775
- of everything in the recovery list. Recoveries will execute
1776
- in the opposite order of add - it's a stack.
1855
+ Gets the <see cref="P:Microsoft.Practices.ObjectBuilder2.IBuildKey.Type"/> that represents the key.
1777
1856
  </summary>
1857
+ <value>
1858
+ The <see cref="P:Microsoft.Practices.ObjectBuilder2.IBuildKey.Type"/> that represents the key.
1859
+ </value>
1778
1860
  </member>
1779
- <member name="P:Microsoft.Practices.ObjectBuilder2.IRecoveryStack.Count">
1861
+ <member name="M:Microsoft.Practices.ObjectBuilder2.NamedTypeBuildKey.#ctor(System.Type,System.String)">
1780
1862
  <summary>
1781
- Return the number of recovery objects currently in the stack.
1863
+ Create a new <see cref="T:Microsoft.Practices.ObjectBuilder2.NamedTypeBuildKey"/> instance with the given
1864
+ type and name.
1782
1865
  </summary>
1866
+ <param name="type"><see cref="P:Microsoft.Practices.ObjectBuilder2.NamedTypeBuildKey.Type"/> to build.</param>
1867
+ <param name="name">Key to use to look up type mappings and singletons.</param>
1783
1868
  </member>
1784
- <member name="M:Microsoft.Practices.ObjectBuilder2.RecoveryStack.Add(Microsoft.Practices.ObjectBuilder2.IRequiresRecovery)">
1869
+ <member name="M:Microsoft.Practices.ObjectBuilder2.NamedTypeBuildKey.#ctor(System.Type)">
1785
1870
  <summary>
1786
- Add a new <see cref="T:Microsoft.Practices.ObjectBuilder2.IRequiresRecovery"/> object to this
1787
- list.
1871
+ Create a new <see cref="T:Microsoft.Practices.ObjectBuilder2.NamedTypeBuildKey"/> instance for the default
1872
+ buildup of the given type.
1788
1873
  </summary>
1789
- <param name="recovery">Object to add.</param>
1874
+ <param name="type"><see cref="P:Microsoft.Practices.ObjectBuilder2.NamedTypeBuildKey.Type"/> to build.</param>
1790
1875
  </member>
1791
- <member name="M:Microsoft.Practices.ObjectBuilder2.RecoveryStack.ExecuteRecovery">
1876
+ <member name="M:Microsoft.Practices.ObjectBuilder2.NamedTypeBuildKey.Make``1">
1792
1877
  <summary>
1793
- Execute the <see cref="M:Microsoft.Practices.ObjectBuilder2.IRequiresRecovery.Recover"/> method
1794
- of everything in the recovery list. Recoveries will execute
1795
- in the opposite order of add - it's a stack.
1878
+ This helper method creates a new <see cref="T:Microsoft.Practices.ObjectBuilder2.NamedTypeBuildKey"/> instance. It is
1879
+ initialized for the default key for the given type.
1796
1880
  </summary>
1881
+ <typeparam name="T">Type to build.</typeparam>
1882
+ <returns>A new <see cref="T:Microsoft.Practices.ObjectBuilder2.NamedTypeBuildKey"/> instance.</returns>
1797
1883
  </member>
1798
- <member name="P:Microsoft.Practices.ObjectBuilder2.RecoveryStack.Count">
1884
+ <member name="M:Microsoft.Practices.ObjectBuilder2.NamedTypeBuildKey.Make``1(System.String)">
1799
1885
  <summary>
1800
- Return the number of recovery objects currently in the stack.
1886
+ This helper method creates a new <see cref="T:Microsoft.Practices.ObjectBuilder2.NamedTypeBuildKey"/> instance for
1887
+ the given type and key.
1801
1888
  </summary>
1889
+ <typeparam name="T">Type to build</typeparam>
1890
+ <param name="name">Key to use to look up type mappings and singletons.</param>
1891
+ <returns>A new <see cref="T:Microsoft.Practices.ObjectBuilder2.NamedTypeBuildKey"/> instance initialized with the given type and name.</returns>
1802
1892
  </member>
1803
- <member name="T:Microsoft.Practices.ObjectBuilder2.StrategyChain">
1893
+ <member name="M:Microsoft.Practices.ObjectBuilder2.NamedTypeBuildKey.ReplaceType(System.Type)">
1804
1894
  <summary>
1805
- Represents a chain of responsibility for builder strategies.
1895
+ Construct a new build key object with the current type
1896
+ replaced with the specified <paramref name="newType"/>.
1806
1897
  </summary>
1898
+ <remarks>This method creates a new build key object, the original is unchanged.</remarks>
1899
+ <param name="newType">New type to place in the build key.</param>
1900
+ <returns>The new build key.</returns>
1807
1901
  </member>
1808
- <member name="T:Microsoft.Practices.ObjectBuilder2.IStrategyChain">
1902
+ <member name="M:Microsoft.Practices.ObjectBuilder2.NamedTypeBuildKey.Equals(System.Object)">
1809
1903
  <summary>
1810
- Represents a chain of responsibility for builder strategies.
1904
+ Compare two <see cref="T:Microsoft.Practices.ObjectBuilder2.NamedTypeBuildKey"/> instances.
1811
1905
  </summary>
1906
+ <remarks>Two <see cref="T:Microsoft.Practices.ObjectBuilder2.NamedTypeBuildKey"/> instances compare equal
1907
+ if they contain the same name and the same type. Also, comparing
1908
+ against a different type will also return false.</remarks>
1909
+ <param name="obj">Object to compare to.</param>
1910
+ <returns>True if the two keys are equal, false if not.</returns>
1812
1911
  </member>
1813
- <member name="M:Microsoft.Practices.ObjectBuilder2.IStrategyChain.Reverse">
1912
+ <member name="M:Microsoft.Practices.ObjectBuilder2.NamedTypeBuildKey.GetHashCode">
1814
1913
  <summary>
1815
- Reverse the order of the strategy chain.
1914
+ Calculate a hash code for this instance.
1816
1915
  </summary>
1817
- <returns>The reversed strategy chain.</returns>
1916
+ <returns>A hash code.</returns>
1818
1917
  </member>
1819
- <member name="M:Microsoft.Practices.ObjectBuilder2.IStrategyChain.ExecuteBuildUp(Microsoft.Practices.ObjectBuilder2.IBuilderContext)">
1918
+ <member name="M:Microsoft.Practices.ObjectBuilder2.NamedTypeBuildKey.op_Equality(Microsoft.Practices.ObjectBuilder2.NamedTypeBuildKey,Microsoft.Practices.ObjectBuilder2.NamedTypeBuildKey)">
1820
1919
  <summary>
1821
- Execute this strategy chain against the given context,
1822
- calling the Buildup methods on the strategies.
1920
+ Compare two <see cref="T:Microsoft.Practices.ObjectBuilder2.NamedTypeBuildKey"/> instances for equality.
1823
1921
  </summary>
1824
- <param name="context">Context for the build process.</param>
1825
- <returns>The build up object</returns>
1922
+ <remarks>Two <see cref="T:Microsoft.Practices.ObjectBuilder2.NamedTypeBuildKey"/> instances compare equal
1923
+ if they contain the same name and the same type.</remarks>
1924
+ <param name="left">First of the two keys to compare.</param>
1925
+ <param name="right">Second of the two keys to compare.</param>
1926
+ <returns>True if the values of the keys are the same, else false.</returns>
1826
1927
  </member>
1827
- <member name="M:Microsoft.Practices.ObjectBuilder2.IStrategyChain.ExecuteTearDown(Microsoft.Practices.ObjectBuilder2.IBuilderContext)">
1928
+ <member name="M:Microsoft.Practices.ObjectBuilder2.NamedTypeBuildKey.op_Inequality(Microsoft.Practices.ObjectBuilder2.NamedTypeBuildKey,Microsoft.Practices.ObjectBuilder2.NamedTypeBuildKey)">
1828
1929
  <summary>
1829
- Execute this strategy chain against the given context,
1830
- calling the TearDown methods on the strategies.
1930
+ Compare two <see cref="T:Microsoft.Practices.ObjectBuilder2.NamedTypeBuildKey"/> instances for inequality.
1831
1931
  </summary>
1832
- <param name="context">Context for the teardown process.</param>
1932
+ <remarks>Two <see cref="T:Microsoft.Practices.ObjectBuilder2.NamedTypeBuildKey"/> instances compare equal
1933
+ if they contain the same name and the same type. If either field differs
1934
+ the keys are not equal.</remarks>
1935
+ <param name="left">First of the two keys to compare.</param>
1936
+ <param name="right">Second of the two keys to compare.</param>
1937
+ <returns>false if the values of the keys are the same, else true.</returns>
1833
1938
  </member>
1834
- <member name="M:Microsoft.Practices.ObjectBuilder2.StrategyChain.#ctor">
1939
+ <member name="M:Microsoft.Practices.ObjectBuilder2.NamedTypeBuildKey.ToString">
1835
1940
  <summary>
1836
- Initialzie a new instance of the <see cref="T:Microsoft.Practices.ObjectBuilder2.StrategyChain"/> class.
1941
+ Formats the build key as a string (primarily for debugging).
1837
1942
  </summary>
1943
+ <returns>A readable string representation of the build key.</returns>
1838
1944
  </member>
1839
- <member name="M:Microsoft.Practices.ObjectBuilder2.StrategyChain.#ctor(System.Collections.IEnumerable)">
1945
+ <member name="P:Microsoft.Practices.ObjectBuilder2.NamedTypeBuildKey.Type">
1840
1946
  <summary>
1841
- Initialzie a new instance of the <see cref="T:Microsoft.Practices.ObjectBuilder2.StrategyChain"/> class with a colleciton of strategies.
1947
+ Return the <see cref="P:Microsoft.Practices.ObjectBuilder2.NamedTypeBuildKey.Type"/> stored in this build key.
1842
1948
  </summary>
1843
- <param name="strategies">A collection of strategies to initialize the chain.</param>
1949
+ <value>The type to build.</value>
1844
1950
  </member>
1845
- <member name="M:Microsoft.Practices.ObjectBuilder2.StrategyChain.Add(Microsoft.Practices.ObjectBuilder2.IBuilderStrategy)">
1951
+ <member name="P:Microsoft.Practices.ObjectBuilder2.NamedTypeBuildKey.Name">
1846
1952
  <summary>
1847
- Adds a strategy to the chain.
1953
+ Returns the name stored in this build key.
1848
1954
  </summary>
1849
- <param name="strategy">The strategy to add to the chain.</param>
1955
+ <remarks>The name to use when building.</remarks>
1850
1956
  </member>
1851
- <member name="M:Microsoft.Practices.ObjectBuilder2.StrategyChain.AddRange(System.Collections.IEnumerable)">
1957
+ <member name="T:Microsoft.Practices.ObjectBuilder2.WeakRefDictionary`2">
1852
1958
  <summary>
1853
- Adds strategies to the chain.
1959
+ Represents a dictionary which stores the values as weak references instead of strong
1960
+ references. Null values are supported.
1854
1961
  </summary>
1855
- <param name="strategyEnumerable">The strategies to add to the chain.</param>
1962
+ <typeparam name="TKey">The key type</typeparam>
1963
+ <typeparam name="TValue">The value type</typeparam>
1856
1964
  </member>
1857
- <member name="M:Microsoft.Practices.ObjectBuilder2.StrategyChain.Reverse">
1965
+ <member name="M:Microsoft.Practices.ObjectBuilder2.WeakRefDictionary`2.Add(`0,`1)">
1858
1966
  <summary>
1859
- Reverse the order of the strategy chain.
1967
+ Gets the count of the number of items in the dictionary.
1860
1968
  </summary>
1861
- <returns>The reversed strategy chain.</returns>
1862
- </member>
1863
- <member name="M:Microsoft.Practices.ObjectBuilder2.StrategyChain.ExecuteBuildUp(Microsoft.Practices.ObjectBuilder2.IBuilderContext)">
1864
- <summary>
1865
- Execute this strategy chain against the given context to build up.
1866
- </summary>
1867
- <param name="context">Context for the build processes.</param>
1868
- <returns>The build up object</returns>
1969
+ <value>
1970
+ The count of the number of items in the dictionary.
1971
+ </value>
1972
+ <remarks>
1973
+ Since the items in the dictionary are held by weak reference, the count value
1974
+ cannot be relied upon to guarantee the number of objects that would be discovered via
1975
+ enumeration. Treat the Count as an estimate only.
1976
+ </remarks>
1869
1977
  </member>
1870
- <member name="M:Microsoft.Practices.ObjectBuilder2.StrategyChain.ExecuteTearDown(Microsoft.Practices.ObjectBuilder2.IBuilderContext)">
1978
+ <member name="M:Microsoft.Practices.ObjectBuilder2.WeakRefDictionary`2.ContainsKey(`0)">
1871
1979
  <summary>
1872
- Execute this strategy chain against the given context,
1873
- calling the TearDown methods on the strategies.
1980
+ Determines if the dictionary contains a value for the key.
1874
1981
  </summary>
1875
- <param name="context">Context for the teardown process.</param>
1982
+ <param name="key">The key to look for.</param>
1983
+ <returns>true if the key is contained in the dictionary; otherwise, false.</returns>
1876
1984
  </member>
1877
- <member name="M:Microsoft.Practices.ObjectBuilder2.StrategyChain.System#Collections#Generic#IEnumerable{Microsoft#Practices#ObjectBuilder2#IBuilderStrategy}#GetEnumerator">
1985
+ <member name="M:Microsoft.Practices.ObjectBuilder2.WeakRefDictionary`2.GetEnumerator">
1878
1986
  <summary>
1879
- Returns an enumerator that iterates through the collection.
1987
+ Returns an enumerator that iterates through the dictionary.
1880
1988
  </summary>
1881
-
1882
1989
  <returns>
1883
- A <see cref="T:System.Collections.Generic.IEnumerator`1"></see> that can be used to iterate through the collection.
1990
+ An <see cref="T:System.Collections.IEnumerator"/> object that can be used to iterate through the dictionary.
1884
1991
  </returns>
1885
- <filterpriority>1</filterpriority>
1886
1992
  </member>
1887
- <member name="M:Microsoft.Practices.ObjectBuilder2.StrategyChain.GetEnumerator">
1993
+ <member name="M:Microsoft.Practices.ObjectBuilder2.WeakRefDictionary`2.Remove(`0)">
1888
1994
  <summary>
1889
- Returns an enumerator that iterates through a collection.
1995
+ Removes an item from the dictionary.
1890
1996
  </summary>
1891
-
1892
- <returns>
1893
- An <see cref="T:System.Collections.IEnumerator"></see> object that can be used to iterate through the collection.
1894
- </returns>
1895
- <filterpriority>2</filterpriority>
1997
+ <param name="key">The key of the item to be removed.</param>
1998
+ <returns>Returns true if the key was in the dictionary; return false otherwise.</returns>
1896
1999
  </member>
1897
- <member name="T:Microsoft.Practices.ObjectBuilder2.PropertySelectorPolicy`1">
2000
+ <member name="M:Microsoft.Practices.ObjectBuilder2.WeakRefDictionary`2.TryGet(`0,`1@)">
1898
2001
  <summary>
1899
- An implementation of <see cref="T:Microsoft.Practices.ObjectBuilder2.IPropertySelectorPolicy"/> that looks
1900
- for properties marked with the <typeparamref name="TResolutionAttribute"/>
1901
- attribute that are also settable and not indexers.
2002
+ Attempts to get a value from the dictionary.
1902
2003
  </summary>
1903
- <typeparam name="TResolutionAttribute"></typeparam>
2004
+ <param name="key">The key</param>
2005
+ <param name="value">The value</param>
2006
+ <returns>Returns true if the value was present; false otherwise.</returns>
1904
2007
  </member>
1905
- <member name="M:Microsoft.Practices.ObjectBuilder2.PropertySelectorPolicy`1.CreateResolver(System.Reflection.PropertyInfo)">
2008
+ <member name="P:Microsoft.Practices.ObjectBuilder2.WeakRefDictionary`2.Count">
1906
2009
  <summary>
1907
- Create a <see cref="T:Microsoft.Practices.ObjectBuilder2.IDependencyResolverPolicy"/> for the given
1908
- property.
2010
+ Returns a count of the number of items in the dictionary.
1909
2011
  </summary>
1910
- <param name="property">Property to create resolver for.</param>
1911
- <returns>The resolver object.</returns>
2012
+ <remarks>
2013
+ Since the items in the dictionary are held by weak reference, the count value
2014
+ cannot be relied upon to guarantee the number of objects that would be discovered via
2015
+ enumeration. Treat the Count as an estimate only.
2016
+ </remarks>
1912
2017
  </member>
1913
- <member name="T:Microsoft.Practices.ObjectBuilder2.MethodSelectorPolicy`1">
2018
+ <member name="P:Microsoft.Practices.ObjectBuilder2.WeakRefDictionary`2.Item(`0)">
1914
2019
  <summary>
1915
- An implementation of <see cref="T:Microsoft.Practices.ObjectBuilder2.IMethodSelectorPolicy"/> that selects
1916
- methods by looking for the given <typeparamref name="TMarkerAttribute"/>
1917
- attribute on those methods.
2020
+ Retrieves a value from the dictionary.
1918
2021
  </summary>
1919
- <typeparam name="TMarkerAttribute">Type of attribute used to mark methods
1920
- to inject.</typeparam>
2022
+ <param name="key">The key to look for.</param>
2023
+ <returns>The value in the dictionary.</returns>
2024
+ <exception cref="T:System.Collections.Generic.KeyNotFoundException">Thrown when the key does exist in the dictionary.
2025
+ Since the dictionary contains weak references, the key may have been removed by the
2026
+ garbage collection of the object.</exception>
1921
2027
  </member>
1922
- <member name="M:Microsoft.Practices.ObjectBuilder2.MethodSelectorPolicy`1.CreateResolver(System.Reflection.ParameterInfo)">
2028
+ <member name="T:Microsoft.Practices.ObjectBuilder2.IDependencyResolverTrackerPolicy">
1923
2029
  <summary>
1924
- Create a <see cref="T:Microsoft.Practices.ObjectBuilder2.IDependencyResolverPolicy"/> instance for the given
1925
- <see cref="T:System.Reflection.ParameterInfo"/>.
2030
+ A builder policy that lets you keep track of the current
2031
+ resolvers and will remove them from the given policy set.
1926
2032
  </summary>
1927
- <param name="parameter">Parameter to create the resolver for.</param>
1928
- <returns>The resolver object.</returns>
2033
+ </member>
2034
+ <member name="M:Microsoft.Practices.ObjectBuilder2.IDependencyResolverTrackerPolicy.AddResolverKey(System.Object)">
2035
+ <summary>
2036
+ Add a new resolver to track by key.
2037
+ </summary>
2038
+ <param name="key">Key that was used to add the resolver to the policy set.</param>
2039
+ </member>
2040
+ <member name="M:Microsoft.Practices.ObjectBuilder2.IDependencyResolverTrackerPolicy.RemoveResolvers(Microsoft.Practices.ObjectBuilder2.IPolicyList)">
2041
+ <summary>
2042
+ Remove the currently tracked resolvers from the given policy list.
2043
+ </summary>
2044
+ <param name="policies">Policy list to remove the resolvers from.</param>
2045
+ </member>
2046
+ <member name="T:Microsoft.Practices.ObjectBuilder2.IMethodSelectorPolicy">
2047
+ <summary>
2048
+ An <see cref="T:Microsoft.Practices.ObjectBuilder2.IBuilderPolicy"/> that will examine the given
2049
+ types and return a sequence of <see cref="T:System.Reflection.MethodInfo"/> objects
2050
+ that should be called as part of building the object.
2051
+ </summary>
2052
+ </member>
2053
+ <member name="M:Microsoft.Practices.ObjectBuilder2.IMethodSelectorPolicy.SelectMethods(Microsoft.Practices.ObjectBuilder2.IBuilderContext)">
2054
+ <summary>
2055
+ Return the sequence of methods to call while building the target object.
2056
+ </summary>
2057
+ <param name="context">Current build context.</param>
2058
+ <returns>Sequence of methods to call.</returns>
2059
+ </member>
2060
+ <member name="T:Microsoft.Practices.ObjectBuilder2.DefaultDynamicBuilderMethodCreatorPolicy">
2061
+ <summary>
2062
+ An implementation of <see cref="T:Microsoft.Practices.ObjectBuilder2.IDynamicBuilderMethodCreatorPolicy"/> that will
2063
+ check for full trust and if we're building a class or an interface. If in full
2064
+ trust, attach to the class or module of the interface respectively. If in partial
2065
+ trust, attach to the OB2 module instead.
2066
+ </summary>
2067
+ </member>
2068
+ <member name="M:Microsoft.Practices.ObjectBuilder2.DefaultDynamicBuilderMethodCreatorPolicy.CreateBuilderMethod(System.Type,System.String)">
2069
+ <summary>
2070
+ Create a builder method for the given type, using the given name.
2071
+ </summary>
2072
+ <param name="typeToBuild">Type that will be built by the generated method.</param>
2073
+ <param name="methodName">Name to give to the method.</param>
2074
+ <returns>A <see cref="T:System.Reflection.Emit.DynamicMethod"/> object with the proper signature to use
2075
+ as part of a build plan.</returns>
2076
+ </member>
2077
+ <member name="T:Microsoft.Practices.ObjectBuilder2.IBuilderAware">
2078
+ <summary>
2079
+ Implemented on a class when it wants to receive notifications
2080
+ about the build process.
2081
+ </summary>
2082
+ </member>
2083
+ <member name="M:Microsoft.Practices.ObjectBuilder2.IBuilderAware.OnBuiltUp(System.Object)">
2084
+ <summary>
2085
+ Called by the <see cref="T:Microsoft.Practices.ObjectBuilder2.BuilderAwareStrategy"/> when the object is being built up.
2086
+ </summary>
2087
+ <param name="buildKey">The key of the object that was just built up.</param>
2088
+ </member>
2089
+ <member name="M:Microsoft.Practices.ObjectBuilder2.IBuilderAware.OnTearingDown">
2090
+ <summary>
2091
+ Called by the <see cref="T:Microsoft.Practices.ObjectBuilder2.BuilderAwareStrategy"/> when the object is being torn down.
2092
+ </summary>
2093
+ </member>
2094
+ <member name="T:Microsoft.Practices.ObjectBuilder2.SelectedMethod">
2095
+ <summary>
2096
+ Objects of this type are the return value from <see cref="M:Microsoft.Practices.ObjectBuilder2.IMethodSelectorPolicy.SelectMethods(Microsoft.Practices.ObjectBuilder2.IBuilderContext)"/>.
2097
+ It encapsulates the desired <see cref="T:System.Reflection.MethodInfo"/> with the string keys
2098
+ needed to look up the <see cref="T:Microsoft.Practices.ObjectBuilder2.IDependencyResolverPolicy"/> for each
2099
+ parameter.
2100
+ </summary>
2101
+ </member>
2102
+ <member name="M:Microsoft.Practices.ObjectBuilder2.SelectedMethod.#ctor(System.Reflection.MethodInfo)">
2103
+ <summary>
2104
+ Create a new <see cref="T:Microsoft.Practices.ObjectBuilder2.SelectedMethod"/> instance which
2105
+ contains the given method.
2106
+ </summary>
2107
+ <param name="method">The method</param>
2108
+ </member>
2109
+ <member name="P:Microsoft.Practices.ObjectBuilder2.SelectedMethod.Method">
2110
+ <summary>
2111
+ The constructor this object wraps.
2112
+ </summary>
2113
+ </member>
2114
+ <member name="T:Microsoft.Practices.ObjectBuilder2.BuildKey">
2115
+ <summary>
2116
+ Utility methods for dealing with arbitrary build key objects.
2117
+ </summary>
2118
+ </member>
2119
+ <member name="M:Microsoft.Practices.ObjectBuilder2.BuildKey.GetType(System.Object)">
2120
+ <summary>
2121
+ Gets the <see cref="T:System.Type"/> of object to build from the build key.
2122
+ </summary>
2123
+ <param name="buildKey">The build key to get the <see cref="T:System.Type"/>.</param>
2124
+ <returns>The <see cref="T:System.Type"/> of object to build from the key.</returns>
2125
+ </member>
2126
+ <member name="M:Microsoft.Practices.ObjectBuilder2.BuildKey.TryGetType(System.Object,System.Type@)">
2127
+ <summary>
2128
+ Tries to get the <see cref="T:System.Type"/> from <paramref name="buildKey"/>.
2129
+ </summary>
2130
+ <param name="buildKey">The build key to get the <see cref="T:System.Type"/>.</param>
2131
+ <param name="type"></param>
2132
+ <returns>true if the <see cref="T:System.Type"/> was found; otherwise, false.</returns>
2133
+ </member>
2134
+ <member name="M:Microsoft.Practices.ObjectBuilder2.BuildKey.ReplaceType(System.Object,System.Type)">
2135
+ <summary>
2136
+ Given a <paramref name="buildKey"/>, return a new build key
2137
+ which is the same as the original, except that the type has
2138
+ been replaced with <paramref name="newType"/>.
2139
+ </summary>
2140
+ <param name="buildKey">original build key</param>
2141
+ <param name="newType">New type to put in new build key.</param>
2142
+ <returns>The new build key.</returns>
1929
2143
  </member>
1930
2144
  <member name="T:Microsoft.Practices.ObjectBuilder2.SingletonLifetimePolicy">
1931
2145
  <summary>
@@ -1983,841 +2197,986 @@
1983
2197
  and play real havok with the stack trace.
1984
2198
  </remarks>
1985
2199
  </member>
1986
- <member name="T:Microsoft.Practices.ObjectBuilder2.ReadOnlyLocator">
2200
+ <member name="T:Microsoft.Practices.ObjectBuilder2.DependencyResolverTrackerPolicy">
1987
2201
  <summary>
1988
- An implementation of <see cref="T:Microsoft.Practices.ObjectBuilder2.IReadableLocator"/> that wraps an existing locator
1989
- to ensure items are not written into the locator.
2202
+ Implementation of <see cref="T:Microsoft.Practices.ObjectBuilder2.IDependencyResolverTrackerPolicy"/>.
1990
2203
  </summary>
1991
2204
  </member>
1992
- <member name="M:Microsoft.Practices.ObjectBuilder2.ReadOnlyLocator.#ctor(Microsoft.Practices.ObjectBuilder2.IReadableLocator)">
2205
+ <member name="M:Microsoft.Practices.ObjectBuilder2.DependencyResolverTrackerPolicy.AddResolverKey(System.Object)">
1993
2206
  <summary>
1994
- Initialize a new instance of the <see cref="T:Microsoft.Practices.ObjectBuilder2.ReadableLocator"/> class with an <see cref="T:Microsoft.Practices.ObjectBuilder2.IReadableLocator"/> to wrap.
2207
+ Add a new resolver to track by key.
1995
2208
  </summary>
1996
- <param name="innerLocator">The inner locator to be wrapped.</param>
2209
+ <param name="key">Key that was used to add the resolver to the policy set.</param>
1997
2210
  </member>
1998
- <member name="M:Microsoft.Practices.ObjectBuilder2.ReadOnlyLocator.Contains(System.Object)">
2211
+ <member name="M:Microsoft.Practices.ObjectBuilder2.DependencyResolverTrackerPolicy.RemoveResolvers(Microsoft.Practices.ObjectBuilder2.IPolicyList)">
1999
2212
  <summary>
2000
- Determine if the locator contains an object for the given key.
2213
+ Remove the currently tracked resolvers from the given policy list.
2001
2214
  </summary>
2002
- <param name="key">The key to check.</param>
2003
- <returns>
2004
- true if the locator contains an object for the key; returns
2005
- false otherwise.
2006
- </returns>
2215
+ <param name="policies">Policy list to remove the resolvers from.</param>
2007
2216
  </member>
2008
- <member name="M:Microsoft.Practices.ObjectBuilder2.ReadOnlyLocator.Get(System.Object)">
2217
+ <member name="M:Microsoft.Practices.ObjectBuilder2.DependencyResolverTrackerPolicy.GetTracker(Microsoft.Practices.ObjectBuilder2.IPolicyList,System.Object)">
2009
2218
  <summary>
2010
- Gets an object from the locator, registered with the given key.
2219
+ Get an instance that implements <see cref="T:Microsoft.Practices.ObjectBuilder2.IDependencyResolverTrackerPolicy"/>,
2220
+ either the current one in the policy set or creating a new one if it doesn't
2221
+ exist.
2011
2222
  </summary>
2012
- <param name="key">The key that the object is registered with.</param>
2013
- <returns>The object, if found; null otherwise.</returns>
2014
- <exception cref="T:System.ArgumentNullException">Key is null.</exception>
2223
+ <param name="policies">Policy list to look up from.</param>
2224
+ <param name="buildKey">Build key to track.</param>
2225
+ <returns>The resolver tracker.</returns>
2015
2226
  </member>
2016
- <member name="M:Microsoft.Practices.ObjectBuilder2.ReadOnlyLocator.GetEnumerator">
2227
+ <member name="M:Microsoft.Practices.ObjectBuilder2.DependencyResolverTrackerPolicy.TrackKey(Microsoft.Practices.ObjectBuilder2.IPolicyList,System.Object,System.Object)">
2017
2228
  <summary>
2018
- Returns an enumerator that iterates through the locator.
2229
+ Add a key to be tracked to the current tracker.
2019
2230
  </summary>
2020
- <returns>
2021
- An <see cref="T:System.Collections.IEnumerator"/> object that can be used to iterate through the locator.
2022
- </returns>
2231
+ <param name="policies">Policy list containing the resolvers and trackers.</param>
2232
+ <param name="buildKey">Build key for the resolvers being tracked.</param>
2233
+ <param name="resolverKey">Key for the resolver.</param>
2023
2234
  </member>
2024
- <member name="P:Microsoft.Practices.ObjectBuilder2.ReadOnlyLocator.Count">
2235
+ <member name="M:Microsoft.Practices.ObjectBuilder2.DependencyResolverTrackerPolicy.RemoveResolvers(Microsoft.Practices.ObjectBuilder2.IPolicyList,System.Object)">
2025
2236
  <summary>
2026
- Gets the number of items in the locator.
2237
+ Remove the resolvers for the given build key.
2027
2238
  </summary>
2028
- <value>
2029
- The number of items in the locator.
2030
- </value>
2239
+ <param name="policies">Policy list containing the build key.</param>
2240
+ <param name="buildKey">Build key.</param>
2031
2241
  </member>
2032
- <member name="P:Microsoft.Practices.ObjectBuilder2.ReadOnlyLocator.ParentLocator">
2242
+ <member name="T:Microsoft.Practices.ObjectBuilder2.SelectedProperty">
2033
2243
  <summary>
2034
- Gets the parent locator.
2244
+ Objects of this type are returned from
2245
+ <see cref="M:Microsoft.Practices.ObjectBuilder2.IPropertySelectorPolicy.SelectProperties(Microsoft.Practices.ObjectBuilder2.IBuilderContext)"/>.
2246
+ This class combines the <see cref="T:System.Reflection.PropertyInfo"/> about
2247
+ the property with the string key used to look up the resolver
2248
+ for this property's value.
2035
2249
  </summary>
2036
- <value>
2037
- The parent locator.
2038
- </value>
2039
2250
  </member>
2040
- <member name="P:Microsoft.Practices.ObjectBuilder2.ReadOnlyLocator.ReadOnly">
2251
+ <member name="M:Microsoft.Practices.ObjectBuilder2.SelectedProperty.#ctor(System.Reflection.PropertyInfo,System.String)">
2041
2252
  <summary>
2042
- Determines if the locator is read-only.
2253
+ Create an instance of <see cref="T:Microsoft.Practices.ObjectBuilder2.SelectedProperty"/>
2254
+ with the given <see cref="T:System.Reflection.PropertyInfo"/> and key.
2043
2255
  </summary>
2044
- <value>
2045
- true if the locator is read-only; otherwise, false.
2046
- </value>
2256
+ <param name="property">The property.</param>
2257
+ <param name="key">Key to use to look up the resolver.</param>
2047
2258
  </member>
2048
- <member name="T:Microsoft.Practices.ObjectBuilder2.IStagedStrategyChain">
2259
+ <member name="P:Microsoft.Practices.ObjectBuilder2.SelectedProperty.Property">
2049
2260
  <summary>
2050
- This interface defines a standard method to convert any
2051
- <see cref="T:Microsoft.Practices.ObjectBuilder2.StagedStrategyChain`1"/> regardless
2052
- of the stage enum into a regular, flat strategy chain.
2261
+ PropertyInfo for this property.
2053
2262
  </summary>
2054
2263
  </member>
2055
- <member name="M:Microsoft.Practices.ObjectBuilder2.IStagedStrategyChain.MakeStrategyChain">
2264
+ <member name="P:Microsoft.Practices.ObjectBuilder2.SelectedProperty.Key">
2056
2265
  <summary>
2057
- Convert this <see cref="T:Microsoft.Practices.ObjectBuilder2.StagedStrategyChain`1"/> into
2058
- a flat <see cref="T:Microsoft.Practices.ObjectBuilder2.IStrategyChain"/>.
2266
+ Key to look up this property's resolver.
2059
2267
  </summary>
2060
- <returns>The flattened <see cref="T:Microsoft.Practices.ObjectBuilder2.IStrategyChain"/>.</returns>
2061
2268
  </member>
2062
- <member name="T:Microsoft.Practices.ObjectBuilder2.IBuildPlanCreatorPolicy">
2269
+ <member name="T:Microsoft.Practices.ObjectBuilder2.BuildKeyMappingStrategy">
2063
2270
  <summary>
2064
- A <see cref="T:Microsoft.Practices.ObjectBuilder2.IBuilderPolicy"/> that can create and return an <see cref="T:Microsoft.Practices.ObjectBuilder2.IBuildPlanPolicy"/>
2065
- for the given build key.
2271
+ Represents a strategy for mapping build keys in the build up operation.
2066
2272
  </summary>
2067
2273
  </member>
2068
- <member name="M:Microsoft.Practices.ObjectBuilder2.IBuildPlanCreatorPolicy.CreatePlan(Microsoft.Practices.ObjectBuilder2.IBuilderContext,System.Object)">
2274
+ <member name="M:Microsoft.Practices.ObjectBuilder2.BuildKeyMappingStrategy.PreBuildUp(Microsoft.Practices.ObjectBuilder2.IBuilderContext)">
2069
2275
  <summary>
2070
- Create a build plan using the given context and build key.
2276
+ Called during the chain of responsibility for a build operation. Looks for the <see cref="T:Microsoft.Practices.ObjectBuilder2.IBuildKeyMappingPolicy"/>
2277
+ and if found maps the build key for the current operation.
2071
2278
  </summary>
2072
- <param name="context">Current build context.</param>
2073
- <param name="buildKey">Current build key.</param>
2074
- <returns>The build plan.</returns>
2279
+ <param name="context">The context for the operation.</param>
2075
2280
  </member>
2076
- <member name="T:Microsoft.Practices.ObjectBuilder2.DynamicMethodConstructorStrategy">
2281
+ <member name="T:Microsoft.Practices.ObjectBuilder2.ILifetimeFactoryPolicy">
2077
2282
  <summary>
2078
- A <see cref="T:Microsoft.Practices.ObjectBuilder2.BuilderStrategy"/> that emits IL to call constructors
2079
- as part of creating a build plan.
2283
+ A builder policy used to create lifetime policy instances.
2284
+ Used by the LifetimeStrategy when instantiating open
2285
+ generic types.
2080
2286
  </summary>
2081
2287
  </member>
2082
- <member name="M:Microsoft.Practices.ObjectBuilder2.DynamicMethodConstructorStrategy.PreBuildUp(Microsoft.Practices.ObjectBuilder2.IBuilderContext)">
2288
+ <member name="M:Microsoft.Practices.ObjectBuilder2.ILifetimeFactoryPolicy.CreateLifetimePolicy">
2083
2289
  <summary>
2084
- Called during the chain of responsibility for a build operation.
2290
+ Create a new instance of <see cref="T:Microsoft.Practices.ObjectBuilder2.ILifetimePolicy"/>.
2085
2291
  </summary>
2086
- <remarks>Existing object is an instance of <see cref="T:Microsoft.Practices.ObjectBuilder2.DynamicBuildPlanGenerationContext"/>.</remarks>
2087
- <param name="context">The context for the operation.</param>
2292
+ <returns>The new instance.</returns>
2088
2293
  </member>
2089
- <member name="M:Microsoft.Practices.ObjectBuilder2.DynamicMethodConstructorStrategy.ThrowForNullExistingObject(Microsoft.Practices.ObjectBuilder2.IBuilderContext)">
2294
+ <member name="T:Microsoft.Practices.ObjectBuilder2.GenericTypeBuildKeyMappingPolicy">
2090
2295
  <summary>
2091
- A helper method used by the generated IL to throw an exception if
2092
- a dependency cannot be resolved.
2296
+ An implementation of <see cref="T:Microsoft.Practices.ObjectBuilder2.IBuildKeyMappingPolicy"/> that can map
2297
+ generic types.
2093
2298
  </summary>
2094
- <param name="context">The <see cref="T:Microsoft.Practices.ObjectBuilder2.IBuilderContext"/> currently being
2095
- used for the build of this object.</param>
2096
2299
  </member>
2097
- <member name="M:Microsoft.Practices.ObjectBuilder2.DynamicMethodConstructorStrategy.ThrowForResolutionFailed(System.Exception,System.String,System.String,Microsoft.Practices.ObjectBuilder2.IBuilderContext)">
2300
+ <member name="M:Microsoft.Practices.ObjectBuilder2.GenericTypeBuildKeyMappingPolicy.#ctor(System.Object)">
2098
2301
  <summary>
2099
- A helper method used by the generated IL to throw an exception if a parameter
2100
- fails to resolve.
2302
+ Create a new <see cref="T:Microsoft.Practices.ObjectBuilder2.GenericTypeBuildKeyMappingPolicy"/> instance
2303
+ that will map generic types.
2101
2304
  </summary>
2102
- <param name="inner">Inner exception to throw.</param>
2103
- <param name="parameterName">Name of the parameter that was attempted to be resolved.</param>
2104
- <param name="constructorSignature">String describing which constructor we were calling.</param>
2105
- <param name="context">Current build context.</param>
2305
+ <param name="destinationKey">Build key to map to. This must be or contain an open generic type.</param>
2106
2306
  </member>
2107
- <member name="M:Microsoft.Practices.ObjectBuilder2.DynamicMethodConstructorStrategy.ThrowForAttemptingToConstructInterface(Microsoft.Practices.ObjectBuilder2.IBuilderContext)">
2307
+ <member name="M:Microsoft.Practices.ObjectBuilder2.GenericTypeBuildKeyMappingPolicy.Map(System.Object)">
2108
2308
  <summary>
2109
- A helper method used by the generated IL to throw an exception if
2110
- no existing object is present, but the user is attempting to build
2111
- an interface (usually due to the lack of a type mapping).
2309
+ Maps the build key.
2112
2310
  </summary>
2113
- <param name="context"></param>
2311
+ <param name="buildKey">The build key to map.</param>
2312
+ <returns>The new build key.</returns>
2114
2313
  </member>
2115
- <member name="T:Microsoft.Practices.ObjectBuilder2.BuildKeyMappingStrategy">
2314
+ <member name="T:Microsoft.Practices.ObjectBuilder2.SelectedConstructor">
2116
2315
  <summary>
2117
- Represents a strategy for mapping build keys in the build up operation.
2316
+ Objects of this type are the return value from <see cref="M:Microsoft.Practices.ObjectBuilder2.IConstructorSelectorPolicy.SelectConstructor(Microsoft.Practices.ObjectBuilder2.IBuilderContext)"/>.
2317
+ It encapsulates the desired <see cref="T:System.Reflection.ConstructorInfo"/> with the string keys
2318
+ needed to look up the <see cref="T:Microsoft.Practices.ObjectBuilder2.IDependencyResolverPolicy"/> for each
2319
+ parameter.
2118
2320
  </summary>
2119
2321
  </member>
2120
- <member name="M:Microsoft.Practices.ObjectBuilder2.BuildKeyMappingStrategy.PreBuildUp(Microsoft.Practices.ObjectBuilder2.IBuilderContext)">
2322
+ <member name="M:Microsoft.Practices.ObjectBuilder2.SelectedConstructor.#ctor(System.Reflection.ConstructorInfo)">
2121
2323
  <summary>
2122
- Called during the chain of responsibility for a build operation. Looks for the <see cref="T:Microsoft.Practices.ObjectBuilder2.IBuildKeyMappingPolicy"/>
2123
- and if found maps the build key for the current operation.
2324
+ Create a new <see cref="T:Microsoft.Practices.ObjectBuilder2.SelectedConstructor"/> instance which
2325
+ contains the given constructor.
2124
2326
  </summary>
2125
- <param name="context">The context for the operation.</param>
2327
+ <param name="constructor"></param>
2126
2328
  </member>
2127
- <member name="T:Microsoft.Practices.ObjectBuilder2.BuildFailedException">
2329
+ <member name="P:Microsoft.Practices.ObjectBuilder2.SelectedConstructor.Constructor">
2128
2330
  <summary>
2129
- The exception that gets thrown if a build or teardown operation fails.
2331
+ The constructor this object wraps.
2130
2332
  </summary>
2131
2333
  </member>
2132
- <member name="M:Microsoft.Practices.ObjectBuilder2.BuildFailedException.#ctor(Microsoft.Practices.ObjectBuilder2.IBuilderStrategy,System.Int32,System.Object,System.Exception)">
2334
+ <member name="T:Microsoft.Practices.ObjectBuilder2.Properties.Resources">
2133
2335
  <summary>
2134
- Create a new <see cref="T:Microsoft.Practices.ObjectBuilder2.BuildFailedException"/> instance containing
2135
- the information about the currently executing strategy that caused
2136
- the exception.
2336
+ A strongly-typed resource class, for looking up localized strings, etc.
2137
2337
  </summary>
2138
- <param name="executingStrategy">The <see cref="T:Microsoft.Practices.ObjectBuilder2.IBuilderStrategy"/> that was
2139
- executing at the time the exception was thrown.</param>
2140
- <param name="executingStrategyIndex">The index of the current strategy in its
2141
- strategy chain.</param>
2142
- <param name="buildKey">The build key being built up.</param>
2143
- <param name="innerException">Underlying exception.</param>
2144
2338
  </member>
2145
- <member name="M:Microsoft.Practices.ObjectBuilder2.BuildFailedException.#ctor">
2339
+ <member name="P:Microsoft.Practices.ObjectBuilder2.Properties.Resources.ResourceManager">
2146
2340
  <summary>
2147
- Create a new <see cref="T:Microsoft.Practices.ObjectBuilder2.BuildFailedException"/>. Do not use this constructor, it
2148
- does not take any of the data that makes this type useful.
2341
+ Returns the cached ResourceManager instance used by this class.
2149
2342
  </summary>
2150
2343
  </member>
2151
- <member name="M:Microsoft.Practices.ObjectBuilder2.BuildFailedException.#ctor(System.String)">
2344
+ <member name="P:Microsoft.Practices.ObjectBuilder2.Properties.Resources.Culture">
2152
2345
  <summary>
2153
- Create a new <see cref="T:Microsoft.Practices.ObjectBuilder2.BuildFailedException"/>. Do not use this constructor, it
2154
- does not take any of the data that makes this type useful.
2346
+ Overrides the current thread's CurrentUICulture property for all
2347
+ resource lookups using this strongly typed resource class.
2155
2348
  </summary>
2156
- <param name="message">Error message, ignored.</param>
2157
2349
  </member>
2158
- <member name="M:Microsoft.Practices.ObjectBuilder2.BuildFailedException.#ctor(System.String,System.Exception)">
2350
+ <member name="P:Microsoft.Practices.ObjectBuilder2.Properties.Resources.AmbiguousInjectionConstructor">
2159
2351
  <summary>
2160
- Create a new <see cref="T:Microsoft.Practices.ObjectBuilder2.BuildFailedException"/>. Do not use this constructor, it
2161
- does not take any of the data that makes this type useful.
2352
+ Looks up a localized string similar to The type {0} has multiple constructors of length {1}. Unable to disambiguate..
2162
2353
  </summary>
2163
- <param name="message">Error message, ignored.</param>
2164
- <param name="innerException">Inner exception.</param>
2165
2354
  </member>
2166
- <member name="M:Microsoft.Practices.ObjectBuilder2.BuildFailedException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
2355
+ <member name="P:Microsoft.Practices.ObjectBuilder2.Properties.Resources.BuildFailedException">
2167
2356
  <summary>
2168
- Create a new <see cref="T:Microsoft.Practices.ObjectBuilder2.BuildFailedException"/> from the serialized information.
2357
+ Looks up a localized string similar to The current build operation (build key {2}) failed: {3} (Strategy type {0}, index {1}).
2169
2358
  </summary>
2170
- <param name="info">Serialization info.</param>
2171
- <param name="context">Streaming context.</param>
2172
2359
  </member>
2173
- <member name="M:Microsoft.Practices.ObjectBuilder2.BuildFailedException.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
2360
+ <member name="P:Microsoft.Practices.ObjectBuilder2.Properties.Resources.CannotConstructInterface">
2174
2361
  <summary>
2175
- When overridden in a derived class, sets the <see cref="T:System.Runtime.Serialization.SerializationInfo"></see> with information about the exception.
2362
+ Looks up a localized string similar to The current type, {0}, is an interface and cannot be constructed. Are you missing a type mapping?.
2176
2363
  </summary>
2177
-
2178
- <param name="context">The <see cref="T:System.Runtime.Serialization.StreamingContext"></see> that contains contextual information about the source or destination. </param>
2179
- <param name="info">The <see cref="T:System.Runtime.Serialization.SerializationInfo"></see> that holds the serialized object data about the exception being thrown. </param>
2180
- <exception cref="T:System.ArgumentNullException">The info parameter is a null reference (Nothing in Visual Basic). </exception><filterpriority>2</filterpriority><PermissionSet><IPermission class="System.Security.Permissions.FileIOPermission, mscorlib, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" version="1" Read="*AllFiles*" PathDiscovery="*AllFiles*" /><IPermission class="System.Security.Permissions.SecurityPermission, mscorlib, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" version="1" Flags="SerializationFormatter" /></PermissionSet>
2181
2364
  </member>
2182
- <member name="P:Microsoft.Practices.ObjectBuilder2.BuildFailedException.ExecutingStrategy">
2365
+ <member name="P:Microsoft.Practices.ObjectBuilder2.Properties.Resources.CannotExtractTypeFromBuildKey">
2183
2366
  <summary>
2184
- The strategy that was executing when the exception occurred.
2367
+ Looks up a localized string similar to Cannot extract type from build key {0}..
2185
2368
  </summary>
2186
2369
  </member>
2187
- <member name="P:Microsoft.Practices.ObjectBuilder2.BuildFailedException.ExecutingStrategyIndex">
2370
+ <member name="P:Microsoft.Practices.ObjectBuilder2.Properties.Resources.CannotInjectMethodWithOutParam">
2188
2371
  <summary>
2189
- The index of the currently executing strategy in the build chain.
2372
+ Looks up a localized string similar to The method {1} on type {0} has an out parameter. Injection cannot be performed..
2190
2373
  </summary>
2191
2374
  </member>
2192
- <member name="P:Microsoft.Practices.ObjectBuilder2.BuildFailedException.BuildKey">
2375
+ <member name="P:Microsoft.Practices.ObjectBuilder2.Properties.Resources.CannotInjectOpenGenericMethod">
2193
2376
  <summary>
2194
- The build key that was being built at the time of the exception.
2377
+ Looks up a localized string similar to The method {1} on type {0} is marked for injection, but it is an open generic method. Injection cannot be performed..
2195
2378
  </summary>
2196
2379
  </member>
2197
- <member name="P:Microsoft.Practices.ObjectBuilder2.BuildFailedException.Message">
2380
+ <member name="P:Microsoft.Practices.ObjectBuilder2.Properties.Resources.ConstructorParameterResolutionFailed">
2198
2381
  <summary>
2199
- Gets a message that describes the current exception.
2382
+ Looks up a localized string similar to The parameter {0} could not be resolved when attempting to call constructor {1}..
2200
2383
  </summary>
2201
-
2202
- <returns>
2203
- The error message that explains the reason for the exception, or an empty string("").
2204
- </returns>
2205
- <filterpriority>1</filterpriority>
2206
2384
  </member>
2207
- <member name="T:Microsoft.Practices.ObjectBuilder2.DynamicMethodBuildPlanCreatorPolicy">
2385
+ <member name="P:Microsoft.Practices.ObjectBuilder2.Properties.Resources.KeyAlreadyPresent">
2208
2386
  <summary>
2209
- An <see cref="T:Microsoft.Practices.ObjectBuilder2.IBuildPlanCreatorPolicy"/> implementation
2210
- that constructs a build plan via dynamic IL emission.
2387
+ Looks up a localized string similar to An item with the given key is already present in the dictionary..
2211
2388
  </summary>
2212
2389
  </member>
2213
- <member name="M:Microsoft.Practices.ObjectBuilder2.DynamicMethodBuildPlanCreatorPolicy.#ctor(Microsoft.Practices.ObjectBuilder2.IStagedStrategyChain)">
2390
+ <member name="P:Microsoft.Practices.ObjectBuilder2.Properties.Resources.MethodParameterResolutionFailed">
2214
2391
  <summary>
2215
- Construct a <see cref="T:Microsoft.Practices.ObjectBuilder2.DynamicMethodBuildPlanCreatorPolicy"/> that
2216
- uses the given strategy chain to construct the build plan.
2392
+ Looks up a localized string similar to The value for parameter &quot;{1}&quot; of method {0} could not be resolved. .
2217
2393
  </summary>
2218
- <param name="strategies"></param>
2219
2394
  </member>
2220
- <member name="M:Microsoft.Practices.ObjectBuilder2.DynamicMethodBuildPlanCreatorPolicy.CreatePlan(Microsoft.Practices.ObjectBuilder2.IBuilderContext,System.Object)">
2395
+ <member name="P:Microsoft.Practices.ObjectBuilder2.Properties.Resources.MissingDependency">
2221
2396
  <summary>
2222
- Construct a build plan.
2397
+ Looks up a localized string similar to Could not resolve dependency for build key {0}..
2223
2398
  </summary>
2224
- <param name="context">The current build context.</param>
2225
- <param name="buildKey">The current build key.</param>
2226
- <returns>The created build plan.</returns>
2227
2399
  </member>
2228
- <member name="T:Microsoft.Practices.ObjectBuilder2.DynamicBuildPlanMethod">
2400
+ <member name="P:Microsoft.Practices.ObjectBuilder2.Properties.Resources.MultipleInjectionConstructors">
2229
2401
  <summary>
2230
- A delegate type that defines the signature of the
2231
- dynamic method created by the build plans.
2402
+ Looks up a localized string similar to The type {0} has multiple constructors marked with the InjectionConstructor attribute. Unable to disambiguate..
2232
2403
  </summary>
2233
- <param name="context"><see cref="T:Microsoft.Practices.ObjectBuilder2.IBuilderContext"/> used to build up the object.</param>
2234
2404
  </member>
2235
- <member name="T:Microsoft.Practices.ObjectBuilder2.DynamicMethodBuildPlan">
2405
+ <member name="P:Microsoft.Practices.ObjectBuilder2.Properties.Resources.MustHaveOpenGenericType">
2236
2406
  <summary>
2237
- An implementation of <see cref="T:Microsoft.Practices.ObjectBuilder2.IBuildPlanPolicy"/> that runs the
2238
- given delegate to execute the plan.
2407
+ Looks up a localized string similar to The supplied type {0} must be an open generic type..
2239
2408
  </summary>
2240
2409
  </member>
2241
- <member name="T:Microsoft.Practices.ObjectBuilder2.BuildPlanStrategy">
2410
+ <member name="P:Microsoft.Practices.ObjectBuilder2.Properties.Resources.MustHaveSameNumberOfGenericArguments">
2242
2411
  <summary>
2243
- A <see cref="T:Microsoft.Practices.ObjectBuilder2.BuilderStrategy"/> that will look for a build plan
2244
- in the current context. If it exists, it invokes it, otherwise
2245
- it creates one and stores it for later, and invokes it.
2412
+ Looks up a localized string similar to The supplied type {0} does not have the same number of generic arguments as the target type {1}..
2246
2413
  </summary>
2247
2414
  </member>
2248
- <member name="M:Microsoft.Practices.ObjectBuilder2.BuildPlanStrategy.PreBuildUp(Microsoft.Practices.ObjectBuilder2.IBuilderContext)">
2415
+ <member name="P:Microsoft.Practices.ObjectBuilder2.Properties.Resources.NoConstructorFound">
2249
2416
  <summary>
2250
- Called during the chain of responsibility for a build operation.
2417
+ Looks up a localized string similar to The type {0} does not have an accessible constructor..
2251
2418
  </summary>
2252
- <param name="context">The context for the operation.</param>
2253
2419
  </member>
2254
- <member name="T:Microsoft.Practices.ObjectBuilder2.BuilderAwareStrategy">
2420
+ <member name="P:Microsoft.Practices.ObjectBuilder2.Properties.Resources.PropertyValueResolutionFailed">
2255
2421
  <summary>
2256
- Implementation of <see cref="T:Microsoft.Practices.ObjectBuilder2.IBuilderStrategy"/> which will notify an object about
2257
- the completion of a <see cref="M:Microsoft.Practices.ObjectBuilder2.IBuilder.BuildUp(Microsoft.Practices.ObjectBuilder2.IReadWriteLocator,Microsoft.Practices.ObjectBuilder2.ILifetimeContainer,Microsoft.Practices.ObjectBuilder2.IPolicyList,Microsoft.Practices.ObjectBuilder2.IStrategyChain,System.Object,System.Object)"/> operation, or start of a
2258
- <see cref="M:Microsoft.Practices.ObjectBuilder2.IBuilder.TearDown``1(Microsoft.Practices.ObjectBuilder2.IReadWriteLocator,Microsoft.Practices.ObjectBuilder2.ILifetimeContainer,Microsoft.Practices.ObjectBuilder2.IPolicyList,Microsoft.Practices.ObjectBuilder2.IStrategyChain,``0)"/> operation.
2422
+ Looks up a localized string similar to The value for the property &quot;{0}&quot; could not be resolved..
2259
2423
  </summary>
2260
- <remarks>
2261
- This strategy checks the object that is passing through the builder chain to see if it
2262
- implements IBuilderAware and if it does, it will call <see cref="M:Microsoft.Practices.ObjectBuilder2.IBuilderAware.OnBuiltUp(System.Object)"/>
2263
- and <see cref="M:Microsoft.Practices.ObjectBuilder2.IBuilderAware.OnTearingDown"/>. This strategy is meant to be used from the
2264
- <see cref="F:Microsoft.Practices.ObjectBuilder2.BuilderStage.PostInitialization"/> stage.
2265
- </remarks>
2266
2424
  </member>
2267
- <member name="M:Microsoft.Practices.ObjectBuilder2.BuilderAwareStrategy.PreBuildUp(Microsoft.Practices.ObjectBuilder2.IBuilderContext)">
2425
+ <member name="P:Microsoft.Practices.ObjectBuilder2.Properties.Resources.ProvidedStringArgMustNotBeEmpty">
2268
2426
  <summary>
2269
- Called during the chain of responsibility for a build operation. The
2270
- PreBuildUp method is called when the chain is being executed in the
2271
- forward direction.
2427
+ Looks up a localized string similar to The provided string argument must not be empty..
2272
2428
  </summary>
2273
- <param name="context">Context of the build operation.</param>
2274
2429
  </member>
2275
- <member name="M:Microsoft.Practices.ObjectBuilder2.BuilderAwareStrategy.PreTearDown(Microsoft.Practices.ObjectBuilder2.IBuilderContext)">
2430
+ <member name="T:Microsoft.Practices.ObjectBuilder2.Sequence">
2276
2431
  <summary>
2277
- Called during the chain of responsibility for a teardown operation. The
2278
- PreTearDown method is called when the chain is being executed in the
2279
- forward direction.
2432
+ A series of helper methods to deal with sequences -
2433
+ objects that implement <see cref="T:System.Collections.Generic.IEnumerable`1"/>.
2280
2434
  </summary>
2281
- <param name="context">Context of the teardown operation.</param>
2435
+ <remarks>LINQ in C# 3.0 does pretty much the same stuff,
2436
+ but we're keeping C# 2.0 compatibility here.</remarks>
2282
2437
  </member>
2283
- <member name="T:Microsoft.Practices.ObjectBuilder2.BuilderContext">
2438
+ <member name="M:Microsoft.Practices.ObjectBuilder2.Sequence.ToList``1(System.Collections.Generic.IEnumerable{``0})">
2284
2439
  <summary>
2285
- Represents the context in which a build-up or tear-down operation runs.
2440
+ Given an <see cref="T:System.Collections.Generic.IEnumerable`1"/>, return a
2441
+ new <see cref="T:System.Collections.Generic.List`1"/> containing the same contents.
2286
2442
  </summary>
2443
+ <typeparam name="T">Type of item store in the sequence.</typeparam>
2444
+ <param name="seq">Sequence to create list from.</param>
2445
+ <returns>The new <see cref="T:System.Collections.Generic.List`1"/></returns>
2287
2446
  </member>
2288
- <member name="T:Microsoft.Practices.ObjectBuilder2.IBuilderContext">
2447
+ <member name="M:Microsoft.Practices.ObjectBuilder2.Sequence.OfType``1(System.Collections.IEnumerable)">
2289
2448
  <summary>
2290
- Represents the context in which a build-up or tear-down operation runs.
2449
+ Given an <see cref="T:System.Collections.IEnumerable"/> return a new
2450
+ <see cref="T:System.Collections.Generic.IEnumerable`1"/> that contains
2451
+ all the objects in <paramref name="source"/> that
2452
+ are castable to <typeparamref name="TResult"/>.
2291
2453
  </summary>
2454
+ <typeparam name="TResult">Desired type for objects.</typeparam>
2455
+ <param name="source">Input sequence.</param>
2456
+ <returns>New output sequence.</returns>
2292
2457
  </member>
2293
- <member name="M:Microsoft.Practices.ObjectBuilder2.IBuilderContext.CloneForNewBuild(System.Object,System.Object)">
2458
+ <member name="M:Microsoft.Practices.ObjectBuilder2.Sequence.Collect``1(``0[])">
2294
2459
  <summary>
2295
- Create a new IBuilderContext which has the same strategies, locator, policies, and lifetime
2296
- but a new build key and existing object. Used to execute recursive calls when
2297
- building up dependencies.
2460
+ A function that turns an arbitrary parameter list into an
2461
+ <see cref="T:System.Collections.Generic.IEnumerable`1"/>.
2298
2462
  </summary>
2299
- <param name="newBuildKey">Build key for new buildup.</param>
2300
- <param name="newExistingObject">New exsting object for buildup.</param>
2301
- <returns>The new context.</returns>
2463
+ <typeparam name="T">Type of arguments.</typeparam>
2464
+ <param name="arguments">The items to put into the collection.</param>
2465
+ <returns>An array that contains the values of the <paramref name="arguments"/>.</returns>
2302
2466
  </member>
2303
- <member name="P:Microsoft.Practices.ObjectBuilder2.IBuilderContext.Strategies">
2467
+ <member name="M:Microsoft.Practices.ObjectBuilder2.Sequence.ToArray``1(System.Collections.Generic.IEnumerable{``0})">
2304
2468
  <summary>
2305
- Gets the head of the strategy chain.
2469
+ Create an array containing the elements of the given sequence.
2306
2470
  </summary>
2307
- <returns>
2308
- The strategy that's first in the chain; returns null if there are no
2309
- strategies in the chain.
2310
- </returns>
2471
+ <typeparam name="T">Type of sequence and array.</typeparam>
2472
+ <param name="sequence">Input sequence.</param>
2473
+ <returns>The resulting array.</returns>
2311
2474
  </member>
2312
- <member name="P:Microsoft.Practices.ObjectBuilder2.IBuilderContext.Lifetime">
2475
+ <member name="M:Microsoft.Practices.ObjectBuilder2.Sequence.Where``1(System.Collections.Generic.IEnumerable{``0},System.Predicate{``0})">
2313
2476
  <summary>
2314
- Gets the <see cref="T:Microsoft.Practices.ObjectBuilder2.ILifetimeContainer"/> associated with the build.
2477
+ Given a sequence of <typeparamref name="T"/>, returns a sequence
2478
+ containing those elements that satisfy the given predicate <paramref name="pred"/>.
2315
2479
  </summary>
2316
- <value>
2317
- The <see cref="T:Microsoft.Practices.ObjectBuilder2.ILifetimeContainer"/> associated with the build.
2318
- </value>
2480
+ <typeparam name="T">Type of items in the sequence.</typeparam>
2481
+ <param name="sequence">Source sequence.</param>
2482
+ <param name="pred">Predicate used to test which items match.</param>
2483
+ <returns>The sequence of items that satify <paramref name="pred"/>. This
2484
+ sequence may be empty.</returns>
2319
2485
  </member>
2320
- <member name="P:Microsoft.Practices.ObjectBuilder2.IBuilderContext.Locator">
2486
+ <member name="M:Microsoft.Practices.ObjectBuilder2.Sequence.Exists``1(System.Collections.Generic.IEnumerable{``0},System.Predicate{``0})">
2321
2487
  <summary>
2322
- Gets the locator available to the strategies.
2488
+ Tests the given <paramref name="sequence"/>, returning true if any
2489
+ element in <paramref name="sequence"/> satisfies the given predicate.
2323
2490
  </summary>
2324
- <value>
2325
- The locator available to the strategies.
2326
- </value>
2491
+ <typeparam name="T">Type of elements in sequence.</typeparam>
2492
+ <param name="sequence">Sequence to test.</param>
2493
+ <param name="pred">Predicate to use to test for existence.</param>
2494
+ <returns>true if any elements satify pred, false if not.</returns>
2327
2495
  </member>
2328
- <member name="P:Microsoft.Practices.ObjectBuilder2.IBuilderContext.OriginalBuildKey">
2496
+ <member name="M:Microsoft.Practices.ObjectBuilder2.Sequence.ForAll``1(System.Collections.Generic.IEnumerable{``0},System.Predicate{``0})">
2329
2497
  <summary>
2330
- Gets the original build key for the build operation.
2498
+ Tests the given <paramref name="sequence"/>, returning true only if all
2499
+ elements in <paramref name="sequence"/> satisfies the given predicate.
2331
2500
  </summary>
2332
- <value>
2333
- The original build key for the build operation.
2334
- </value>
2501
+ <typeparam name="T">Type of elements in sequence.</typeparam>
2502
+ <param name="sequence">Sequence to test.</param>
2503
+ <param name="pred">Predicate to use to test.</param>
2504
+ <returns>true if all elements satify pred, false if not.</returns>
2335
2505
  </member>
2336
- <member name="P:Microsoft.Practices.ObjectBuilder2.IBuilderContext.PersistentPolicies">
2506
+ <member name="M:Microsoft.Practices.ObjectBuilder2.Sequence.Map``2(System.Collections.Generic.IEnumerable{``0},System.Converter{``0,``1})">
2337
2507
  <summary>
2338
- The set of policies that were passed into this context.
2508
+ Given a sequence of <typeparamref name="TIn"/>, returns a sequence of
2509
+ <typeparamref name="TOut"/> created by running the items in <paramref name="input"/>
2510
+ through <paramref name="converter"/>.
2339
2511
  </summary>
2340
- <remarks>This returns the policies passed into the context.
2341
- Policies added here will remain after buildup completes.</remarks>
2342
- <value>The persistent policies for the current context.</value>
2512
+ <typeparam name="TIn">Type of items in input.</typeparam>
2513
+ <typeparam name="TOut">Type of items in output.</typeparam>
2514
+ <param name="input">Input sequence.</param>
2515
+ <param name="converter">Mapping function.</param>
2516
+ <returns>The converted output sequence.</returns>
2343
2517
  </member>
2344
- <member name="P:Microsoft.Practices.ObjectBuilder2.IBuilderContext.Policies">
2518
+ <member name="M:Microsoft.Practices.ObjectBuilder2.Sequence.Reduce``2(System.Collections.Generic.IEnumerable{``0},``1,Microsoft.Practices.ObjectBuilder2.Sequence.Reducer{``0,``1})">
2345
2519
  <summary>
2346
- Gets the policies for the current context.
2347
- </summary>
2348
- <remarks>Any policies added to this object are transient
2349
- and will be erased at the end of the buildup.</remarks>
2350
- <value>
2351
- The policies for the current context.
2352
- </value>
2353
- </member>
2354
- <member name="P:Microsoft.Practices.ObjectBuilder2.IBuilderContext.RecoveryStack">
2355
- <summary>
2356
- Gets the collection of <see cref="T:Microsoft.Practices.ObjectBuilder2.IRequiresRecovery"/> objects
2357
- that need to execute in event of an exception.
2358
- </summary>
2359
- </member>
2360
- <member name="P:Microsoft.Practices.ObjectBuilder2.IBuilderContext.BuildKey">
2361
- <summary>
2362
- Get the current build key for the current build operation.
2520
+ Run a functional Reduce operation. See other methods for examples.
2363
2521
  </summary>
2522
+ <typeparam name="TSource">Type of inputs.</typeparam>
2523
+ <typeparam name="TDest">Type of final output.</typeparam>
2524
+ <param name="sequence">Sequence of input items.</param>
2525
+ <param name="initialValue">Initial value for accumulator.</param>
2526
+ <param name="reducer">Reduce function.</param>
2527
+ <returns></returns>
2364
2528
  </member>
2365
- <member name="P:Microsoft.Practices.ObjectBuilder2.IBuilderContext.Existing">
2529
+ <member name="M:Microsoft.Practices.ObjectBuilder2.Sequence.ToString``1(System.Collections.Generic.IEnumerable{``0},System.String,System.Converter{``0,System.String})">
2366
2530
  <summary>
2367
- The current object being built up or torn down.
2531
+ Convert the given sequence to a single string. The items in the string are
2532
+ separated by the given separator, and each object is converted to a string
2533
+ using the <paramref name="converter"/> method given.
2368
2534
  </summary>
2369
- <value>
2370
- The current object being manipulated by the build operation. May
2371
- be null if the object hasn't been created yet.</value>
2535
+ <typeparam name="T">Type of input sequence.</typeparam>
2536
+ <param name="sequence">Input sequence.</param>
2537
+ <param name="separator">Separator string.</param>
2538
+ <param name="converter">Function to convert <typeparamref name="T"/> instances to
2539
+ strings.</param>
2540
+ <returns>The collected string.</returns>
2372
2541
  </member>
2373
- <member name="P:Microsoft.Practices.ObjectBuilder2.IBuilderContext.BuildComplete">
2542
+ <member name="M:Microsoft.Practices.ObjectBuilder2.Sequence.ToString``1(System.Collections.Generic.IEnumerable{``0},System.String)">
2374
2543
  <summary>
2375
- Flag indicating if the build operation should continue.
2544
+ Convert the given sequence to a single string. The items in the string are separated
2545
+ by the given separator, and each object is converted to a string by calling its
2546
+ <see cref="M:System.Object.ToString"/> method.
2376
2547
  </summary>
2377
- <value>true means that building should not call any more
2378
- strategies, false means continue to the next strategy.</value>
2548
+ <typeparam name="T">Type of input sequence.</typeparam>
2549
+ <param name="sequence">Input sequence.</param>
2550
+ <param name="separator">Separator string.</param>
2551
+ <returns>The collected string.</returns>
2379
2552
  </member>
2380
- <member name="M:Microsoft.Practices.ObjectBuilder2.BuilderContext.#ctor">
2553
+ <member name="M:Microsoft.Practices.ObjectBuilder2.Sequence.First``1(System.Collections.Generic.IEnumerable{``0})">
2381
2554
  <summary>
2382
- Initialize a new instance of the <see cref="T:Microsoft.Practices.ObjectBuilder2.BuilderContext"/> class.
2555
+ Return the first item in the given sequence.
2383
2556
  </summary>
2557
+ <exception cref="T:System.InvalidOperationException">Thrown if the sequence is empty.</exception>
2558
+ <typeparam name="T">Type of items in the sequence.</typeparam>
2559
+ <param name="sequence">The sequence.</param>
2560
+ <returns>First item in the sequence.</returns>
2384
2561
  </member>
2385
- <member name="M:Microsoft.Practices.ObjectBuilder2.BuilderContext.#ctor(Microsoft.Practices.ObjectBuilder2.IStrategyChain,Microsoft.Practices.ObjectBuilder2.IReadWriteLocator,Microsoft.Practices.ObjectBuilder2.ILifetimeContainer,Microsoft.Practices.ObjectBuilder2.IPolicyList,System.Object,System.Object)">
2562
+ <member name="M:Microsoft.Practices.ObjectBuilder2.Sequence.ForEach``1(System.Collections.Generic.IEnumerable{``0},System.Action{``0})">
2386
2563
  <summary>
2387
- Initialize a new instance of the <see cref="T:Microsoft.Practices.ObjectBuilder2.BuilderContext"/> class with a <see cref="T:Microsoft.Practices.ObjectBuilder2.IStrategyChain"/>,
2388
- <see cref="T:Microsoft.Practices.ObjectBuilder2.IReadWriteLocator"/>, <see cref="T:Microsoft.Practices.ObjectBuilder2.ILifetimeContainer"/>, <see cref="T:Microsoft.Practices.ObjectBuilder2.IPolicyList"/> and the
2389
- build key used to start this build operation.
2564
+ Execute the given action delegate for each item in the sequence.
2390
2565
  </summary>
2391
- <param name="chain">The <see cref="T:Microsoft.Practices.ObjectBuilder2.IStrategyChain"/> to use for this context.</param>
2392
- <param name="locator">The <see cref="T:Microsoft.Practices.ObjectBuilder2.IReadWriteLocator"/> to use for this context.</param>
2393
- <param name="lifetime">The <see cref="T:Microsoft.Practices.ObjectBuilder2.ILifetimeContainer"/> to use for this context.</param>
2394
- <param name="policies">The <see cref="T:Microsoft.Practices.ObjectBuilder2.IPolicyList"/> to use for this context.</param>
2395
- <param name="originalBuildKey">Build key to start building.</param>
2396
- <param name="existing">The existing object to build up.</param>
2566
+ <typeparam name="TItem">Type of item in the sequence.</typeparam>
2567
+ <param name="sequence">The sequence of items.</param>
2568
+ <param name="action">Action to perform on each item.</param>
2397
2569
  </member>
2398
- <member name="M:Microsoft.Practices.ObjectBuilder2.BuilderContext.#ctor(Microsoft.Practices.ObjectBuilder2.IStrategyChain,Microsoft.Practices.ObjectBuilder2.IReadWriteLocator,Microsoft.Practices.ObjectBuilder2.ILifetimeContainer,Microsoft.Practices.ObjectBuilder2.IPolicyList,Microsoft.Practices.ObjectBuilder2.IPolicyList,System.Object,System.Object)">
2570
+ <member name="M:Microsoft.Practices.ObjectBuilder2.Sequence.Concat``1(System.Collections.Generic.IEnumerable{``0}[])">
2399
2571
  <summary>
2400
- Create a new <see cref="T:Microsoft.Practices.ObjectBuilder2.BuilderContext"/> using the explicitly provided
2401
- values.
2572
+ Concatenate multiple sequences into a single one.
2402
2573
  </summary>
2403
- <param name="chain">The <see cref="T:Microsoft.Practices.ObjectBuilder2.IStrategyChain"/> to use for this context.</param>
2404
- <param name="locator">The <see cref="T:Microsoft.Practices.ObjectBuilder2.IReadWriteLocator"/> to use for this context.</param>
2405
- <param name="lifetime">The <see cref="T:Microsoft.Practices.ObjectBuilder2.ILifetimeContainer"/> to use for this context.</param>
2406
- <param name="persistentPolicies">The set of persistent policies to use for this context.</param>
2407
- <param name="transientPolicies">The set of transient policies to use for this context. It is
2408
- the caller's responsibility to ensure that the transient and persistent policies are properly
2409
- combined.</param>
2410
- <param name="buildKey">Build key for this context.</param>
2411
- <param name="existing">Existing object to build up.</param>
2574
+ <typeparam name="TItem">Type of sequences in the sequence.</typeparam>
2575
+ <param name="sequences">The sequences to combine.</param>
2576
+ <returns>The combined sequence.</returns>
2412
2577
  </member>
2413
- <member name="M:Microsoft.Practices.ObjectBuilder2.BuilderContext.CloneForNewBuild(System.Object,System.Object)">
2578
+ <member name="T:Microsoft.Practices.ObjectBuilder2.Sequence.Reducer`2">
2414
2579
  <summary>
2415
- Create a new IBuilderContext which has the same strategies, locator, policies, and lifetime
2416
- but a new build key and existing object. Used to execute recursive calls when
2417
- building up dependencies.
2580
+ A delegate that defines the function passed to the <see cref="M:Microsoft.Practices.ObjectBuilder2.Sequence.Reduce``2(System.Collections.Generic.IEnumerable{``0},``1,Microsoft.Practices.ObjectBuilder2.Sequence.Reducer{``0,``1})"/> methods.
2418
2581
  </summary>
2419
- <param name="newBuildKey">Build key for new buildup.</param>
2420
- <param name="newExistingObject">New exsting object for buildup.</param>
2421
- <returns>The new context.</returns>
2582
+ <typeparam name="TSource">Type of item being reduced.</typeparam>
2583
+ <typeparam name="TDest">Type of the accumulator object.</typeparam>
2584
+ <param name="currentItem">Current item to process.</param>
2585
+ <param name="accumulator">Current value of the accumulator.</param>
2586
+ <returns></returns>
2422
2587
  </member>
2423
- <member name="P:Microsoft.Practices.ObjectBuilder2.BuilderContext.Strategies">
2588
+ <member name="T:Microsoft.Practices.ObjectBuilder2.Seq">
2424
2589
  <summary>
2425
- Gets the head of the strategy chain.
2590
+ Static class containing constructor methods for
2591
+ instances of <see cref="T:Microsoft.Practices.ObjectBuilder2.Seq`1"/>, so that we
2592
+ get type inference.
2426
2593
  </summary>
2427
- <returns>
2428
- The strategy that's first in the chain; returns null if there are no
2429
- strategies in the chain.
2430
- </returns>
2431
2594
  </member>
2432
- <member name="P:Microsoft.Practices.ObjectBuilder2.BuilderContext.BuildKey">
2595
+ <member name="M:Microsoft.Practices.ObjectBuilder2.Seq.Make``1(System.Collections.Generic.IEnumerable{``0})">
2433
2596
  <summary>
2434
- Get the current build key for the current build operation.
2597
+ Make a new instance of <see cref="T:Microsoft.Practices.ObjectBuilder2.Seq`1"/> that wraps
2598
+ the given items.
2435
2599
  </summary>
2600
+ <typeparam name="T">Type of items in the sequence.</typeparam>
2601
+ <param name="items">Items in the sequence.</param>
2602
+ <returns>The sequence.</returns>
2436
2603
  </member>
2437
- <member name="P:Microsoft.Practices.ObjectBuilder2.BuilderContext.Existing">
2604
+ <member name="M:Microsoft.Practices.ObjectBuilder2.Seq.Collect``1(``0[])">
2438
2605
  <summary>
2439
- The current object being built up or torn down.
2606
+ Make a new instance of <see cref="T:Microsoft.Practices.ObjectBuilder2.Seq`1"/> that wraps
2607
+ the given items.
2440
2608
  </summary>
2441
- <value>
2442
- The current object being manipulated by the build operation. May
2443
- be null if the object hasn't been created yet.</value>
2609
+ <typeparam name="T">Type of items in the sequence.</typeparam>
2610
+ <param name="items">Items in the sequence.</param>
2611
+ <returns>The sequence.</returns>
2444
2612
  </member>
2445
- <member name="P:Microsoft.Practices.ObjectBuilder2.BuilderContext.Lifetime">
2613
+ <member name="T:Microsoft.Practices.ObjectBuilder2.Seq`1">
2446
2614
  <summary>
2447
- Gets the <see cref="T:Microsoft.Practices.ObjectBuilder2.ILifetimeContainer"/> associated with the build.
2615
+ And another helper class that makes it possible to chain sequence operations together.
2448
2616
  </summary>
2449
- <value>
2450
- The <see cref="T:Microsoft.Practices.ObjectBuilder2.ILifetimeContainer"/> associated with the build.
2451
- </value>
2617
+ <typeparam name="T">Type of item contained in the sequence.</typeparam>
2452
2618
  </member>
2453
- <member name="P:Microsoft.Practices.ObjectBuilder2.BuilderContext.Locator">
2619
+ <member name="M:Microsoft.Practices.ObjectBuilder2.Seq`1.#ctor(System.Collections.Generic.IEnumerable{`0})">
2454
2620
  <summary>
2455
- Gets the locator available to the strategies.
2621
+ Create a new <see cref="T:Microsoft.Practices.ObjectBuilder2.Seq`1"/> instance wrapping the given IEnumerable.
2456
2622
  </summary>
2457
- <value>
2458
- The locator available to the strategies.
2459
- </value>
2623
+ <param name="items">The sequence to wrap.</param>
2460
2624
  </member>
2461
- <member name="P:Microsoft.Practices.ObjectBuilder2.BuilderContext.OriginalBuildKey">
2625
+ <member name="M:Microsoft.Practices.ObjectBuilder2.Seq`1.System#Collections#IEnumerable#GetEnumerator">
2462
2626
  <summary>
2463
- Gets the original build key for the build operation.
2627
+ Returns an enumerator that iterates through a collection.
2464
2628
  </summary>
2465
- <value>
2466
- The original build key for the build operation.
2467
- </value>
2629
+ <returns>
2630
+ An <see cref="T:System.Collections.IEnumerator" /> object that can be used to iterate through the collection.
2631
+ </returns>
2632
+ <filterpriority>2</filterpriority>
2468
2633
  </member>
2469
- <member name="P:Microsoft.Practices.ObjectBuilder2.BuilderContext.PersistentPolicies">
2634
+ <member name="M:Microsoft.Practices.ObjectBuilder2.Seq`1.GetEnumerator">
2470
2635
  <summary>
2471
- The set of policies that were passed into this context.
2636
+ Returns an enumerator that iterates through the collection.
2472
2637
  </summary>
2473
- <remarks>This returns the policies passed into the context.
2474
- Policies added here will remain after buildup completes.</remarks>
2475
- <value>The persistent policies for the current context.</value>
2638
+ <returns>
2639
+ A <see cref="T:System.Collections.Generic.IEnumerator`1" /> that can be used to iterate through the collection.
2640
+ </returns>
2641
+ <filterpriority>1</filterpriority>
2476
2642
  </member>
2477
- <member name="P:Microsoft.Practices.ObjectBuilder2.BuilderContext.Policies">
2643
+ <member name="M:Microsoft.Practices.ObjectBuilder2.Seq`1.ToList">
2478
2644
  <summary>
2479
- Gets the policies for the current context.
2645
+ Given a sequence object, return a list containing those items.
2480
2646
  </summary>
2481
- <remarks>
2482
- Any modifications will be transient (meaning, they will be forgotten when
2483
- the outer BuildUp for this context is finished executing).
2484
- </remarks>
2485
- <value>
2486
- The policies for the current context.
2487
- </value>
2647
+ <returns>The materialized list.</returns>
2488
2648
  </member>
2489
- <member name="P:Microsoft.Practices.ObjectBuilder2.BuilderContext.RecoveryStack">
2649
+ <member name="M:Microsoft.Practices.ObjectBuilder2.Seq`1.ToArray">
2490
2650
  <summary>
2491
- Gets the collection of <see cref="T:Microsoft.Practices.ObjectBuilder2.IRequiresRecovery"/> objects
2492
- that need to execute in event of an exception.
2651
+ Return an array with the same contents as this sequence.
2493
2652
  </summary>
2653
+ <returns>The materialized array.</returns>
2494
2654
  </member>
2495
- <member name="P:Microsoft.Practices.ObjectBuilder2.BuilderContext.BuildComplete">
2655
+ <member name="M:Microsoft.Practices.ObjectBuilder2.Seq`1.Where(System.Predicate{`0})">
2496
2656
  <summary>
2497
- Flag indicating if the build operation should continue.
2657
+ Returns new sequence containing only the items for which the predicate is true.
2498
2658
  </summary>
2499
- <value>true means that building should not call any more
2500
- strategies, false means continue to the next strategy.</value>
2659
+ <param name="predicate">Test to indicate sequence inclusion</param>
2660
+ <returns>New sequence.</returns>
2501
2661
  </member>
2502
- <member name="T:Microsoft.Practices.ObjectBuilder2.IllegalInjectionMethodException">
2662
+ <member name="M:Microsoft.Practices.ObjectBuilder2.Seq`1.Exists(System.Predicate{`0})">
2503
2663
  <summary>
2504
- The exception thrown when injection is attempted on a method
2505
- that is an open generic or has out or ref params.
2664
+ Tests the sequence, returning true if any
2665
+ element satisfies the given predicate.
2506
2666
  </summary>
2667
+ <param name="predicate">Predicate to use to test for existence.</param>
2668
+ <returns>true if any elements satify pred, false if not.</returns>
2507
2669
  </member>
2508
- <member name="M:Microsoft.Practices.ObjectBuilder2.IllegalInjectionMethodException.#ctor">
2670
+ <member name="M:Microsoft.Practices.ObjectBuilder2.Seq`1.ForAll(System.Predicate{`0})">
2509
2671
  <summary>
2510
- Construct a new <see cref="T:Microsoft.Practices.ObjectBuilder2.IllegalInjectionMethodException"/> with no
2511
- message.
2672
+ Tests the sequence, returning true only if all
2673
+ elements satisfy the given predicate.
2512
2674
  </summary>
2675
+ <param name="predicate">Predicate to use to test.</param>
2676
+ <returns>true if all elements satify pred, false if not.</returns>
2513
2677
  </member>
2514
- <member name="M:Microsoft.Practices.ObjectBuilder2.IllegalInjectionMethodException.#ctor(System.String)">
2678
+ <member name="M:Microsoft.Practices.ObjectBuilder2.Seq`1.Map``1(System.Converter{`0,``0})">
2515
2679
  <summary>
2516
- Construct a <see cref="T:Microsoft.Practices.ObjectBuilder2.IllegalInjectionMethodException"/> with the given message
2680
+ Return a new sequence consisting of the result of running each element through
2681
+ the given <paramref name="converter"/>.
2517
2682
  </summary>
2518
- <param name="message">Message to return.</param>
2683
+ <typeparam name="TOut">Desired output type.</typeparam>
2684
+ <param name="converter">Converter delegate.</param>
2685
+ <returns>New Sequence</returns>
2519
2686
  </member>
2520
- <member name="M:Microsoft.Practices.ObjectBuilder2.IllegalInjectionMethodException.#ctor(System.String,System.Exception)">
2687
+ <member name="M:Microsoft.Practices.ObjectBuilder2.Seq`1.Reduce``1(``0,Microsoft.Practices.ObjectBuilder2.Sequence.Reducer{`0,``0})">
2521
2688
  <summary>
2522
- Construct a <see cref="T:Microsoft.Practices.ObjectBuilder2.IllegalInjectionMethodException"/> with the given message
2523
- and inner exception.
2689
+ Run a functional Reduce operation. See other methods for examples.
2524
2690
  </summary>
2525
- <param name="message">Message to return.</param>
2526
- <param name="innerException">Inner exception</param>
2691
+ <typeparam name="TDest">Type of final output.</typeparam>
2692
+ <param name="initialValue">Initial value for accumulator.</param>
2693
+ <param name="reducer">Reduce function.</param>
2694
+ <returns></returns>
2527
2695
  </member>
2528
- <member name="M:Microsoft.Practices.ObjectBuilder2.IllegalInjectionMethodException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
2696
+ <member name="M:Microsoft.Practices.ObjectBuilder2.Seq`1.ToString(System.String,System.Converter{`0,System.String})">
2529
2697
  <summary>
2530
- Used for serialization.
2698
+ Convert the given sequence to a single string. The items in the string are
2699
+ separated by the given separator, and each object is converted to a string
2700
+ using the <paramref name="converter"/> method given.
2531
2701
  </summary>
2532
- <param name="info">Serialization info.</param>
2533
- <param name="context">Serialization context.</param>
2702
+ <param name="separator">Separator string.</param>
2703
+ <param name="converter">Function to convert <typeparamref name="T"/> instances to
2704
+ strings.</param>
2705
+ <returns>The collected string.</returns>
2534
2706
  </member>
2535
- <member name="T:Microsoft.Practices.ObjectBuilder2.GenericTypeBuildKeyMappingPolicy">
2707
+ <member name="M:Microsoft.Practices.ObjectBuilder2.Seq`1.ToString(System.String)">
2536
2708
  <summary>
2537
- An implementation of <see cref="T:Microsoft.Practices.ObjectBuilder2.IBuildKeyMappingPolicy"/> that can map
2538
- generic types.
2709
+ Convert the given sequence to a single string. The items in the string are separated
2710
+ by the given separator, and each object is converted to a string by calling its
2711
+ <see cref="M:System.Object.ToString"/> method.
2539
2712
  </summary>
2713
+ <param name="separator">Separator string.</param>
2714
+ <returns>The collected string.</returns>
2540
2715
  </member>
2541
- <member name="M:Microsoft.Practices.ObjectBuilder2.GenericTypeBuildKeyMappingPolicy.#ctor(System.Object)">
2716
+ <member name="M:Microsoft.Practices.ObjectBuilder2.Seq`1.First">
2542
2717
  <summary>
2543
- Create a new <see cref="T:Microsoft.Practices.ObjectBuilder2.GenericTypeBuildKeyMappingPolicy"/> instance
2544
- that will map generic types.
2718
+ Return the first item in the given sequence.
2545
2719
  </summary>
2546
- <param name="destinationKey">Build key to map to. This must be or contain an open generic type.</param>
2720
+ <exception cref="T:System.InvalidOperationException">Thrown if the sequence is empty.</exception>
2721
+ <returns>First item in the sequence.</returns>
2547
2722
  </member>
2548
- <member name="M:Microsoft.Practices.ObjectBuilder2.GenericTypeBuildKeyMappingPolicy.Map(System.Object)">
2723
+ <member name="M:Microsoft.Practices.ObjectBuilder2.Seq`1.ForEach(System.Action{`0})">
2549
2724
  <summary>
2550
- Maps the build key.
2725
+ Execute the given action delegate for each item in the sequence.
2551
2726
  </summary>
2552
- <param name="buildKey">The build key to map.</param>
2553
- <returns>The new build key.</returns>
2727
+ <param name="action">Action to perform on each item.</param>
2554
2728
  </member>
2555
- <member name="T:Microsoft.Practices.ObjectBuilder2.BuildKeyMappingPolicy">
2729
+ <member name="M:Microsoft.Practices.ObjectBuilder2.Seq`1.Concat(System.Collections.Generic.IEnumerable{`0}[])">
2556
2730
  <summary>
2557
- Represents a builder policy for mapping build keys.
2731
+ Concatenate multiple sequences with this one to return a single
2732
+ sequence containing all items.
2558
2733
  </summary>
2734
+ <param name="sequences">Sequences to combine.</param>
2735
+ <returns>The combined sequence.</returns>
2559
2736
  </member>
2560
- <member name="M:Microsoft.Practices.ObjectBuilder2.BuildKeyMappingPolicy.#ctor(System.Object)">
2737
+ <member name="T:Microsoft.Practices.ObjectBuilder2.MethodSelectorPolicy`1">
2561
2738
  <summary>
2562
- Initialize a new instance of the <see cref="T:Microsoft.Practices.ObjectBuilder2.BuildKeyMappingPolicy"/> with the new build key.
2739
+ An implementation of <see cref="T:Microsoft.Practices.ObjectBuilder2.IMethodSelectorPolicy"/> that selects
2740
+ methods by looking for the given <typeparamref name="TMarkerAttribute"/>
2741
+ attribute on those methods.
2563
2742
  </summary>
2564
- <param name="newBuildKey"></param>
2743
+ <typeparam name="TMarkerAttribute">Type of attribute used to mark methods
2744
+ to inject.</typeparam>
2565
2745
  </member>
2566
- <member name="M:Microsoft.Practices.ObjectBuilder2.BuildKeyMappingPolicy.Map(System.Object)">
2746
+ <member name="T:Microsoft.Practices.ObjectBuilder2.MethodSelectorPolicyBase`1">
2567
2747
  <summary>
2568
- Map the <paramref name="buildKey"/> to a new build key.
2748
+ Base class that provides an implementation of <see cref="T:Microsoft.Practices.ObjectBuilder2.IMethodSelectorPolicy"/>
2749
+ which lets you override how the parameter resolvers are created.
2569
2750
  </summary>
2570
- <param name="buildKey">The build key to mapl</param>
2571
- <returns>The new build key.</returns>
2751
+ <typeparam name="TMarkerAttribute">Attribute that marks methods that should
2752
+ be called.</typeparam>
2572
2753
  </member>
2573
- <member name="T:Microsoft.Practices.ObjectBuilder2.StagedStrategyChain`1">
2754
+ <member name="M:Microsoft.Practices.ObjectBuilder2.MethodSelectorPolicyBase`1.SelectMethods(Microsoft.Practices.ObjectBuilder2.IBuilderContext)">
2574
2755
  <summary>
2575
- Represents a chain of responsibility for builder strategies partitioned by stages.
2756
+ Return the sequence of methods to call while building the target object.
2576
2757
  </summary>
2577
- <typeparam name="TStageEnum">The stage enumeration to partition the strategies.</typeparam>
2758
+ <param name="context">Current build context.</param>
2759
+ <returns>Sequence of methods to call.</returns>
2578
2760
  </member>
2579
- <member name="M:Microsoft.Practices.ObjectBuilder2.StagedStrategyChain`1.#ctor">
2761
+ <member name="M:Microsoft.Practices.ObjectBuilder2.MethodSelectorPolicyBase`1.CreateResolver(System.Reflection.ParameterInfo)">
2580
2762
  <summary>
2581
- Initialize a new instance of the <see cref="T:Microsoft.Practices.ObjectBuilder2.StagedStrategyChain`1"/> class.
2763
+ Create a <see cref="T:Microsoft.Practices.ObjectBuilder2.IDependencyResolverPolicy"/> instance for the given
2764
+ <see cref="T:System.Reflection.ParameterInfo"/>.
2582
2765
  </summary>
2766
+ <param name="parameter">Parameter to create the resolver for.</param>
2767
+ <returns>The resolver object.</returns>
2583
2768
  </member>
2584
- <member name="M:Microsoft.Practices.ObjectBuilder2.StagedStrategyChain`1.#ctor(Microsoft.Practices.ObjectBuilder2.StagedStrategyChain{`0})">
2769
+ <member name="M:Microsoft.Practices.ObjectBuilder2.MethodSelectorPolicy`1.CreateResolver(System.Reflection.ParameterInfo)">
2585
2770
  <summary>
2586
- Initialize a new instance of the <see cref="T:Microsoft.Practices.ObjectBuilder2.StagedStrategyChain`1"/> class with an inner strategy chain to use when building.
2771
+ Create a <see cref="T:Microsoft.Practices.ObjectBuilder2.IDependencyResolverPolicy"/> instance for the given
2772
+ <see cref="T:System.Reflection.ParameterInfo"/>.
2587
2773
  </summary>
2588
- <param name="innerChain">The inner strategy chain to use first when finding strategies in the build operation.</param>
2774
+ <param name="parameter">Parameter to create the resolver for.</param>
2775
+ <returns>The resolver object.</returns>
2589
2776
  </member>
2590
- <member name="M:Microsoft.Practices.ObjectBuilder2.StagedStrategyChain`1.Add(Microsoft.Practices.ObjectBuilder2.IBuilderStrategy,`0)">
2777
+ <member name="T:Microsoft.Practices.ObjectBuilder2.ConstructorSelectorPolicy`1">
2591
2778
  <summary>
2592
- Adds a strategy to the chain at a particular stage.
2779
+ An implementation of <see cref="T:Microsoft.Practices.ObjectBuilder2.IConstructorSelectorPolicy"/> that chooses
2780
+ constructors based on these criteria: first, pick a constructor marked with the
2781
+ <typeparamref name="TInjectionConstructorMarkerAttribute"/> attribute. If there
2782
+ isn't one, then choose the constructor with the longest parameter list. If that is ambiguous,
2783
+ then throw.
2593
2784
  </summary>
2594
- <param name="strategy">The strategy to add to the chain.</param>
2595
- <param name="stage">The stage to add the strategy.</param>
2785
+ <exception cref="T:System.InvalidOperationException">Thrown when the constructor to choose is ambiguous.</exception>
2786
+ <typeparam name="TInjectionConstructorMarkerAttribute">Attribute used to mark the constructor to call.</typeparam>
2596
2787
  </member>
2597
- <member name="M:Microsoft.Practices.ObjectBuilder2.StagedStrategyChain`1.AddNew``1(`0)">
2788
+ <member name="M:Microsoft.Practices.ObjectBuilder2.ConstructorSelectorPolicy`1.CreateResolver(System.Reflection.ParameterInfo)">
2598
2789
  <summary>
2599
- Add a new strategy for the <paramref name="stage"/>.
2790
+ Create a <see cref="T:Microsoft.Practices.ObjectBuilder2.IDependencyResolverPolicy"/> instance for the given
2791
+ <see cref="T:System.Reflection.ParameterInfo"/>.
2600
2792
  </summary>
2601
- <typeparam name="TStrategy">The <see cref="T:System.Type"/> of <see cref="T:Microsoft.Practices.ObjectBuilder2.IBuilderStrategy"/></typeparam>
2602
- <param name="stage">The stage to add the strategy.</param>
2793
+ <param name="param">Parameter to create the resolver for.</param>
2794
+ <returns>The resolver object.</returns>
2603
2795
  </member>
2604
- <member name="M:Microsoft.Practices.ObjectBuilder2.StagedStrategyChain`1.Clear">
2796
+ <member name="T:Microsoft.Practices.ObjectBuilder2.LifetimeContainer">
2605
2797
  <summary>
2606
- Clear the current strategy chain list.
2798
+ Represents a lifetime container.
2607
2799
  </summary>
2608
2800
  <remarks>
2609
- This will not clear the inner strategy chain if this instane was created with one.
2801
+ A lifetime container tracks the lifetime of an object, and implements
2802
+ IDisposable. When the container is disposed, any objects in the
2803
+ container which implement IDisposable are also disposed.
2610
2804
  </remarks>
2611
2805
  </member>
2612
- <member name="M:Microsoft.Practices.ObjectBuilder2.StagedStrategyChain`1.MakeStrategyChain">
2806
+ <member name="M:Microsoft.Practices.ObjectBuilder2.LifetimeContainer.Add(System.Object)">
2613
2807
  <summary>
2614
- Makes a strategy chain based on this instance.
2808
+ Adds an object to the lifetime container.
2615
2809
  </summary>
2616
- <returns>A new <see cref="T:Microsoft.Practices.ObjectBuilder2.StrategyChain"/>.</returns>
2810
+ <param name="item">The item to be added to the lifetime container.</param>
2617
2811
  </member>
2618
- <member name="T:Microsoft.Practices.ObjectBuilder2.Locator">
2812
+ <member name="M:Microsoft.Practices.ObjectBuilder2.LifetimeContainer.Contains(System.Object)">
2619
2813
  <summary>
2620
- An implementation of <see cref="T:Microsoft.Practices.ObjectBuilder2.IReadableLocator"/> and <see cref="T:Microsoft.Practices.ObjectBuilder2.IReadWriteLocator"/>.
2814
+ Determine if a given object is in the lifetime container.
2621
2815
  </summary>
2816
+ <param name="item">
2817
+ The item to locate in the lifetime container.
2818
+ </param>
2819
+ <returns>
2820
+ Returns true if the object is contained in the lifetime
2821
+ container; returns false otherwise.
2822
+ </returns>
2622
2823
  </member>
2623
- <member name="M:Microsoft.Practices.ObjectBuilder2.Locator.#ctor">
2824
+ <member name="M:Microsoft.Practices.ObjectBuilder2.LifetimeContainer.Dispose">
2624
2825
  <summary>
2625
- Initializes a new instance of the <see cref="T:Microsoft.Practices.ObjectBuilder2.Locator"/> class.
2826
+ Releases the resources used by the <see cref="T:Microsoft.Practices.ObjectBuilder2.LifetimeContainer"/>.
2626
2827
  </summary>
2627
2828
  </member>
2628
- <member name="M:Microsoft.Practices.ObjectBuilder2.Locator.#ctor(Microsoft.Practices.ObjectBuilder2.IReadableLocator)">
2829
+ <member name="M:Microsoft.Practices.ObjectBuilder2.LifetimeContainer.Dispose(System.Boolean)">
2629
2830
  <summary>
2630
- Initializes a new instance of the <see cref="T:Microsoft.Practices.ObjectBuilder2.Locator"/> class as a child of the <paramref name="parentLocator"/>.
2831
+ Releases the managed resources used by the DbDataReader and optionally releases the unmanaged resources.
2631
2832
  </summary>
2632
- <param name="parentLocator">The parent locator.</param>
2833
+ <param name="disposing">
2834
+ true to release managed and unmanaged resources; false to release only unmanaged resources.
2835
+ </param>
2633
2836
  </member>
2634
- <member name="M:Microsoft.Practices.ObjectBuilder2.Locator.Add(System.Object,System.Object)">
2837
+ <member name="M:Microsoft.Practices.ObjectBuilder2.LifetimeContainer.GetEnumerator">
2635
2838
  <summary>
2636
- Adds an object to the locator, with the given key.
2839
+ Returns an enumerator that iterates through the lifetime container.
2637
2840
  </summary>
2638
- <param name="key">The key to register the object with.</param>
2639
- <param name="value">The object to be registered.</param>
2640
- <exception cref="T:System.ArgumentNullException">Key or value are null.</exception>
2841
+ <returns>
2842
+ An <see cref="T:System.Collections.IEnumerator"/> object that can be used to iterate through the life time container.
2843
+ </returns>
2641
2844
  </member>
2642
- <member name="M:Microsoft.Practices.ObjectBuilder2.Locator.Contains(System.Object)">
2845
+ <member name="M:Microsoft.Practices.ObjectBuilder2.LifetimeContainer.System#Collections#IEnumerable#GetEnumerator">
2643
2846
  <summary>
2644
- Determine if the locator contains an object for the given key.
2847
+ Returns an enumerator that iterates through the lifetime container.
2645
2848
  </summary>
2646
- <param name="key">The key to check.</param>
2647
2849
  <returns>
2648
- true if the locator contains an object for the key; returns
2649
- false otherwise.
2850
+ An <see cref="T:System.Collections.IEnumerator"/> object that can be used to iterate through the life time container.
2650
2851
  </returns>
2651
2852
  </member>
2652
- <member name="M:Microsoft.Practices.ObjectBuilder2.Locator.Get(System.Object)">
2853
+ <member name="M:Microsoft.Practices.ObjectBuilder2.LifetimeContainer.Remove(System.Object)">
2653
2854
  <summary>
2654
- Gets an object from the locator, registered with the given key.
2855
+ Removes an item from the lifetime container. The item is
2856
+ not disposed.
2655
2857
  </summary>
2656
- <param name="key">The key that the object is registered with.</param>
2657
- <returns>The object, if found; null otherwise.</returns>
2658
- <exception cref="T:System.ArgumentNullException">Key is null.</exception>
2858
+ <param name="item">The item to be removed.</param>
2659
2859
  </member>
2660
- <member name="M:Microsoft.Practices.ObjectBuilder2.Locator.GetEnumerator">
2860
+ <member name="P:Microsoft.Practices.ObjectBuilder2.LifetimeContainer.Count">
2661
2861
  <summary>
2662
- Returns an enumerator that iterates through a locator.
2862
+ Gets the number of references in the lifetime container
2663
2863
  </summary>
2664
- <returns>
2665
- An <see cref="T:System.Collections.Generic.IEnumerator`1"/> object that can be used to iterate through the locator.
2666
- </returns>
2864
+ <value>
2865
+ The number of references in the lifetime container
2866
+ </value>
2667
2867
  </member>
2668
- <member name="M:Microsoft.Practices.ObjectBuilder2.Locator.Remove(System.Object)">
2868
+ <member name="T:Microsoft.Practices.ObjectBuilder2.DynamicBuildPlanMethod">
2669
2869
  <summary>
2670
- Removes an object from the locator.
2870
+ A delegate type that defines the signature of the
2871
+ dynamic method created by the build plans.
2671
2872
  </summary>
2672
- <param name="key">The key under which the object was registered.</param>
2673
- <returns>
2674
- Returns true if the object was found in the locator; returns
2675
- false otherwise.
2676
- </returns>
2677
- <exception cref="T:System.ArgumentNullException">Key is null.</exception>
2873
+ <param name="context"><see cref="T:Microsoft.Practices.ObjectBuilder2.IBuilderContext"/> used to build up the object.</param>
2678
2874
  </member>
2679
- <member name="P:Microsoft.Practices.ObjectBuilder2.Locator.Count">
2875
+ <member name="T:Microsoft.Practices.ObjectBuilder2.DynamicMethodBuildPlan">
2680
2876
  <summary>
2681
- Gets the number of items in the locator.
2877
+ An implementation of <see cref="T:Microsoft.Practices.ObjectBuilder2.IBuildPlanPolicy"/> that runs the
2878
+ given delegate to execute the plan.
2682
2879
  </summary>
2683
- <value>
2684
- The number of items in the locator.
2685
- </value>
2686
2880
  </member>
2687
- <member name="T:Microsoft.Practices.ObjectBuilder2.LifetimeContainer">
2881
+ <member name="T:Microsoft.Practices.ObjectBuilder2.DynamicBuildPlanGenerationContext">
2688
2882
  <summary>
2689
- Represents a lifetime container.
2883
+ This object tracks the current state of the build plan generation,
2884
+ accumulates the IL, provides the preamble &amp; postamble for the dynamic
2885
+ method, and tracks things like local variables in the generated IL
2886
+ so that they can be reused across IL generation strategies.
2887
+ </summary>
2888
+ </member>
2889
+ <member name="M:Microsoft.Practices.ObjectBuilder2.DynamicBuildPlanGenerationContext.#ctor(System.Type,Microsoft.Practices.ObjectBuilder2.IDynamicBuilderMethodCreatorPolicy)">
2890
+ <summary>
2891
+ Create a <see cref="T:Microsoft.Practices.ObjectBuilder2.DynamicBuildPlanGenerationContext"/> that is initialized
2892
+ to handle creation of a dynamic method to build the given type.
2893
+ </summary>
2894
+ <param name="typeToBuild">Type that we're trying to create a build plan for.</param>
2895
+ <param name="builderMethodCreator">An <see cref="T:Microsoft.Practices.ObjectBuilder2.IDynamicBuilderMethodCreatorPolicy"/> object that actually
2896
+ creates our <see cref="T:System.Reflection.Emit.DynamicMethod"/> object.</param>
2897
+ </member>
2898
+ <member name="M:Microsoft.Practices.ObjectBuilder2.DynamicBuildPlanGenerationContext.GetBuildMethod">
2899
+ <summary>
2900
+ Completes generation of the dynamic method and returns the
2901
+ generated dynamic method delegate.
2902
+ </summary>
2903
+ <returns>The created <see cref="T:Microsoft.Practices.ObjectBuilder2.DynamicBuildPlanMethod"/></returns>
2904
+ </member>
2905
+ <member name="M:Microsoft.Practices.ObjectBuilder2.DynamicBuildPlanGenerationContext.EmitLoadContext">
2906
+ <summary>
2907
+ Emit the IL to put the build context on top of the IL stack.
2908
+ </summary>
2909
+ </member>
2910
+ <member name="M:Microsoft.Practices.ObjectBuilder2.DynamicBuildPlanGenerationContext.EmitLoadBuildKey">
2911
+ <summary>
2912
+ Emit the IL to put the current build key on top of the IL stack.
2913
+ </summary>
2914
+ </member>
2915
+ <member name="M:Microsoft.Practices.ObjectBuilder2.DynamicBuildPlanGenerationContext.EmitLoadExisting">
2916
+ <summary>
2917
+ Emit the IL to put the current "existing" object on the top of the IL stack.
2918
+ </summary>
2919
+ </member>
2920
+ <member name="M:Microsoft.Practices.ObjectBuilder2.DynamicBuildPlanGenerationContext.EmitStoreExisting">
2921
+ <summary>
2922
+ Emit the IL to make the top of the IL stack our current "existing" object.
2923
+ </summary>
2924
+ </member>
2925
+ <member name="M:Microsoft.Practices.ObjectBuilder2.DynamicBuildPlanGenerationContext.EmitLoadTypeOnStack(System.Type)">
2926
+ <summary>
2927
+ Emit the IL to load the given <see cref="T:System.Type"/> object onto the top of the IL stack.
2928
+ </summary>
2929
+ <param name="t">Type to load on the stack.</param>
2930
+ </member>
2931
+ <member name="M:Microsoft.Practices.ObjectBuilder2.DynamicBuildPlanGenerationContext.EmitResolveDependency(System.Type,System.String)">
2932
+ <summary>
2933
+ Emit the IL needed to look up an <see cref="T:Microsoft.Practices.ObjectBuilder2.IDependencyResolverPolicy"/> and
2934
+ call it to get a value.
2935
+ </summary>
2936
+ <param name="dependencyType">Type of the dependency to resolve.</param>
2937
+ <param name="key">Key to look up the policy by.</param>
2938
+ </member>
2939
+ <member name="M:Microsoft.Practices.ObjectBuilder2.DynamicBuildPlanGenerationContext.GetPropertyGetter``2(System.String)">
2940
+ <summary>
2941
+ A reflection helper method to make it easier to grab a property getter
2942
+ <see cref="T:System.Reflection.MethodInfo"/> for the given property.
2943
+ </summary>
2944
+ <typeparam name="TImplementor">Type that implements the property we want.</typeparam>
2945
+ <typeparam name="TProperty">Type of the property.</typeparam>
2946
+ <param name="name">Name of the property.</param>
2947
+ <returns>The property getter's <see cref="T:System.Reflection.MethodInfo"/>.</returns>
2948
+ </member>
2949
+ <member name="M:Microsoft.Practices.ObjectBuilder2.DynamicBuildPlanGenerationContext.GetMethodInfo``1(System.String,System.Type[])">
2950
+ <summary>
2951
+ A reflection helper method that makes it easier to grab a <see cref="T:System.Reflection.MethodInfo"/>
2952
+ for a method.
2953
+ </summary>
2954
+ <typeparam name="TImplementor">Type that implements the method we want.</typeparam>
2955
+ <param name="name">Name of the method.</param>
2956
+ <param name="argumentTypes">Types of arguments to the method.</param>
2957
+ <returns>The method's <see cref="T:System.Reflection.MethodInfo"/>.</returns>
2958
+ </member>
2959
+ <member name="P:Microsoft.Practices.ObjectBuilder2.DynamicBuildPlanGenerationContext.IL">
2960
+ <summary>
2961
+ The underlying <see cref="T:System.Reflection.Emit.ILGenerator"/> that can be used to
2962
+ emit IL into the generated dynamic method.
2963
+ </summary>
2964
+ </member>
2965
+ <member name="P:Microsoft.Practices.ObjectBuilder2.DynamicBuildPlanGenerationContext.TypeToBuild">
2966
+ <summary>
2967
+ The type we're currently creating the method to build.
2968
+ </summary>
2969
+ </member>
2970
+ <member name="T:Microsoft.Practices.ObjectBuilder2.Builder">
2971
+ <summary>
2972
+ An implementation of <see cref="T:Microsoft.Practices.ObjectBuilder2.IBuilder"/>. It contains all the default strategies shipped
2973
+ with ObjectBuilder.
2974
+ </summary>
2975
+ </member>
2976
+ <member name="M:Microsoft.Practices.ObjectBuilder2.Builder.BuildUp(Microsoft.Practices.ObjectBuilder2.IReadWriteLocator,Microsoft.Practices.ObjectBuilder2.ILifetimeContainer,Microsoft.Practices.ObjectBuilder2.IPolicyList,Microsoft.Practices.ObjectBuilder2.IStrategyChain,System.Object,System.Object)">
2977
+ <summary>
2978
+ Performs a build operation.
2690
2979
  </summary>
2691
2980
  <remarks>
2692
- A lifetime container tracks the lifetime of an object, and implements
2693
- IDisposable. When the container is disposed, any objects in the
2694
- container which implement IDisposable are also disposed.
2981
+ This operation uses the strategies and permanent policies already configured
2982
+ into the builder, combined with the optional transient policies, and starts a build
2983
+ operation. Transient policies override any built-in policies, when present.
2695
2984
  </remarks>
2985
+ <param name="locator">The locator to be used for this build operation.</param>
2986
+ <param name="lifetime">The <see cref="T:Microsoft.Practices.ObjectBuilder2.ILifetimeContainer"/> to use for this build operation.</param>
2987
+ <param name="policies">
2988
+ The transient policies to apply to this build. These
2989
+ policies take precedence over any permanent policies built into the builder.
2990
+ </param>
2991
+ <param name="strategies">
2992
+ The <see cref="T:Microsoft.Practices.ObjectBuilder2.IStrategyChain"/> to use for this build operation.
2993
+ </param>
2994
+ <param name="buildKey">The key of the object to build.</param>
2995
+ <param name="existing">
2996
+ The existing object to run the build chain on, if one exists.
2997
+ If null is passed, a new object instance will typically be created by some strategy
2998
+ in the chain.
2999
+ </param>
3000
+ <returns>The built object.</returns>
2696
3001
  </member>
2697
- <member name="T:Microsoft.Practices.ObjectBuilder2.ILifetimeContainer">
3002
+ <member name="M:Microsoft.Practices.ObjectBuilder2.Builder.BuildUp``1(Microsoft.Practices.ObjectBuilder2.IReadWriteLocator,Microsoft.Practices.ObjectBuilder2.ILifetimeContainer,Microsoft.Practices.ObjectBuilder2.IPolicyList,Microsoft.Practices.ObjectBuilder2.IStrategyChain,System.Object,System.Object)">
2698
3003
  <summary>
2699
- Represents a lifetime container.
3004
+ Performs a build operation.
2700
3005
  </summary>
2701
3006
  <remarks>
2702
- A lifetime container tracks the lifetime of an object, and implements
2703
- IDisposable. When the container is disposed, any objects in the
2704
- container which implement IDisposable are also disposed.
3007
+ This operation uses the strategies and permanent policies already configured
3008
+ into the builder, combined with the optional transient policies, and starts a build
3009
+ operation. Transient policies override any built-in policies, when present.
2705
3010
  </remarks>
3011
+ <typeparam name="TTypeToBuild">The type to build.</typeparam>
3012
+ <param name="locator">The locator to be used for this build operation.</param>
3013
+ <param name="lifetime">The <see cref="T:Microsoft.Practices.ObjectBuilder2.ILifetimeContainer"/> to use for this build operation.</param>
3014
+ <param name="policies">
3015
+ The transient policies to apply to this build. These
3016
+ policies take precedence over any permanent policies built into the builder.
3017
+ </param>
3018
+ <param name="strategies">
3019
+ The <see cref="T:Microsoft.Practices.ObjectBuilder2.IStrategyChain"/> to use for this build operation.
3020
+ </param>
3021
+ <param name="buildKey">The key of the object to build.</param>
3022
+ <param name="existing">
3023
+ The existing object to run the build chain on, if one exists.
3024
+ If null is passed, a new object instance will typically be created by some strategy
3025
+ in the chain.
3026
+ </param>
3027
+ <returns>The built object.</returns>
2706
3028
  </member>
2707
- <member name="M:Microsoft.Practices.ObjectBuilder2.ILifetimeContainer.Add(System.Object)">
3029
+ <member name="M:Microsoft.Practices.ObjectBuilder2.Builder.TearDown``1(Microsoft.Practices.ObjectBuilder2.IReadWriteLocator,Microsoft.Practices.ObjectBuilder2.ILifetimeContainer,Microsoft.Practices.ObjectBuilder2.IPolicyList,Microsoft.Practices.ObjectBuilder2.IStrategyChain,``0)">
2708
3030
  <summary>
2709
- Adds an object to the lifetime container.
3031
+ Performs an unbuild operation.
2710
3032
  </summary>
2711
- <param name="item">The item to be added to the lifetime container.</param>
3033
+ <typeparam name="TItem">The type to unbuild. If not provided, it will be inferred from the
3034
+ type of item.
3035
+ </typeparam>
3036
+ <param name="locator">The locator to be used for this build operation.</param>
3037
+ <param name="lifetime">The <see cref="T:Microsoft.Practices.ObjectBuilder2.ILifetimeContainer"/> to use for this build operation.</param>
3038
+ <param name="policies">
3039
+ The transient policies to apply to this build. These
3040
+ policies take precedence over any permanent policies built into the builder.
3041
+ </param>
3042
+ <param name="strategies">
3043
+ The <see cref="T:Microsoft.Practices.ObjectBuilder2.IStrategyChain"/> to use for this build operation.
3044
+ </param>
3045
+ <param name="item">The item to tear down.</param>
3046
+ <returns>The torn down item.</returns>
2712
3047
  </member>
2713
- <member name="M:Microsoft.Practices.ObjectBuilder2.ILifetimeContainer.Contains(System.Object)">
3048
+ <member name="T:Microsoft.Practices.ObjectBuilder2.StrategyChain">
2714
3049
  <summary>
2715
- Determine if a given object is in the lifetime container.
3050
+ Represents a chain of responsibility for builder strategies.
2716
3051
  </summary>
2717
- <param name="item">
2718
- The item to locate in the lifetime container.
2719
- </param>
2720
- <returns>
2721
- Returns true if the object is contained in the lifetime
2722
- container; returns false otherwise.
2723
- </returns>
2724
3052
  </member>
2725
- <member name="M:Microsoft.Practices.ObjectBuilder2.ILifetimeContainer.Remove(System.Object)">
3053
+ <member name="T:Microsoft.Practices.ObjectBuilder2.IStrategyChain">
2726
3054
  <summary>
2727
- Removes an item from the lifetime container. The item is
2728
- not disposed.
3055
+ Represents a chain of responsibility for builder strategies.
2729
3056
  </summary>
2730
- <param name="item">The item to be removed.</param>
2731
3057
  </member>
2732
- <member name="P:Microsoft.Practices.ObjectBuilder2.ILifetimeContainer.Count">
3058
+ <member name="M:Microsoft.Practices.ObjectBuilder2.IStrategyChain.Reverse">
2733
3059
  <summary>
2734
- Gets the number of references in the lifetime container
3060
+ Reverse the order of the strategy chain.
2735
3061
  </summary>
2736
- <value>
2737
- The number of references in the lifetime container
2738
- </value>
3062
+ <returns>The reversed strategy chain.</returns>
2739
3063
  </member>
2740
- <member name="M:Microsoft.Practices.ObjectBuilder2.LifetimeContainer.Add(System.Object)">
3064
+ <member name="M:Microsoft.Practices.ObjectBuilder2.IStrategyChain.ExecuteBuildUp(Microsoft.Practices.ObjectBuilder2.IBuilderContext)">
2741
3065
  <summary>
2742
- Adds an object to the lifetime container.
3066
+ Execute this strategy chain against the given context,
3067
+ calling the Buildup methods on the strategies.
2743
3068
  </summary>
2744
- <param name="item">The item to be added to the lifetime container.</param>
3069
+ <param name="context">Context for the build process.</param>
3070
+ <returns>The build up object</returns>
2745
3071
  </member>
2746
- <member name="M:Microsoft.Practices.ObjectBuilder2.LifetimeContainer.Contains(System.Object)">
3072
+ <member name="M:Microsoft.Practices.ObjectBuilder2.IStrategyChain.ExecuteTearDown(Microsoft.Practices.ObjectBuilder2.IBuilderContext)">
2747
3073
  <summary>
2748
- Determine if a given object is in the lifetime container.
3074
+ Execute this strategy chain against the given context,
3075
+ calling the TearDown methods on the strategies.
2749
3076
  </summary>
2750
- <param name="item">
2751
- The item to locate in the lifetime container.
2752
- </param>
2753
- <returns>
2754
- Returns true if the object is contained in the lifetime
2755
- container; returns false otherwise.
2756
- </returns>
3077
+ <param name="context">Context for the teardown process.</param>
2757
3078
  </member>
2758
- <member name="M:Microsoft.Practices.ObjectBuilder2.LifetimeContainer.Dispose">
3079
+ <member name="M:Microsoft.Practices.ObjectBuilder2.StrategyChain.#ctor">
2759
3080
  <summary>
2760
- Releases the resources used by the <see cref="T:Microsoft.Practices.ObjectBuilder2.LifetimeContainer"/>.
3081
+ Initialzie a new instance of the <see cref="T:Microsoft.Practices.ObjectBuilder2.StrategyChain"/> class.
2761
3082
  </summary>
2762
3083
  </member>
2763
- <member name="M:Microsoft.Practices.ObjectBuilder2.LifetimeContainer.Dispose(System.Boolean)">
3084
+ <member name="M:Microsoft.Practices.ObjectBuilder2.StrategyChain.#ctor(System.Collections.IEnumerable)">
2764
3085
  <summary>
2765
- Releases the managed resources used by the DbDataReader and optionally releases the unmanaged resources.
3086
+ Initialzie a new instance of the <see cref="T:Microsoft.Practices.ObjectBuilder2.StrategyChain"/> class with a colleciton of strategies.
2766
3087
  </summary>
2767
- <param name="disposing">
2768
- true to release managed and unmanaged resources; false to release only unmanaged resources.
2769
- </param>
3088
+ <param name="strategies">A collection of strategies to initialize the chain.</param>
2770
3089
  </member>
2771
- <member name="M:Microsoft.Practices.ObjectBuilder2.LifetimeContainer.GetEnumerator">
3090
+ <member name="M:Microsoft.Practices.ObjectBuilder2.StrategyChain.Add(Microsoft.Practices.ObjectBuilder2.IBuilderStrategy)">
2772
3091
  <summary>
2773
- Returns an enumerator that iterates through the lifetime container.
3092
+ Adds a strategy to the chain.
2774
3093
  </summary>
3094
+ <param name="strategy">The strategy to add to the chain.</param>
3095
+ </member>
3096
+ <member name="M:Microsoft.Practices.ObjectBuilder2.StrategyChain.AddRange(System.Collections.IEnumerable)">
3097
+ <summary>
3098
+ Adds strategies to the chain.
3099
+ </summary>
3100
+ <param name="strategyEnumerable">The strategies to add to the chain.</param>
3101
+ </member>
3102
+ <member name="M:Microsoft.Practices.ObjectBuilder2.StrategyChain.Reverse">
3103
+ <summary>
3104
+ Reverse the order of the strategy chain.
3105
+ </summary>
3106
+ <returns>The reversed strategy chain.</returns>
3107
+ </member>
3108
+ <member name="M:Microsoft.Practices.ObjectBuilder2.StrategyChain.ExecuteBuildUp(Microsoft.Practices.ObjectBuilder2.IBuilderContext)">
3109
+ <summary>
3110
+ Execute this strategy chain against the given context to build up.
3111
+ </summary>
3112
+ <param name="context">Context for the build processes.</param>
3113
+ <returns>The build up object</returns>
3114
+ </member>
3115
+ <member name="M:Microsoft.Practices.ObjectBuilder2.StrategyChain.ExecuteTearDown(Microsoft.Practices.ObjectBuilder2.IBuilderContext)">
3116
+ <summary>
3117
+ Execute this strategy chain against the given context,
3118
+ calling the TearDown methods on the strategies.
3119
+ </summary>
3120
+ <param name="context">Context for the teardown process.</param>
3121
+ </member>
3122
+ <member name="M:Microsoft.Practices.ObjectBuilder2.StrategyChain.System#Collections#Generic#IEnumerable{Microsoft#Practices#ObjectBuilder2#IBuilderStrategy}#GetEnumerator">
3123
+ <summary>
3124
+ Returns an enumerator that iterates through the collection.
3125
+ </summary>
3126
+
2775
3127
  <returns>
2776
- An <see cref="T:System.Collections.IEnumerator"/> object that can be used to iterate through the life time container.
3128
+ A <see cref="T:System.Collections.Generic.IEnumerator`1"></see> that can be used to iterate through the collection.
2777
3129
  </returns>
3130
+ <filterpriority>1</filterpriority>
2778
3131
  </member>
2779
- <member name="M:Microsoft.Practices.ObjectBuilder2.LifetimeContainer.System#Collections#IEnumerable#GetEnumerator">
3132
+ <member name="M:Microsoft.Practices.ObjectBuilder2.StrategyChain.GetEnumerator">
2780
3133
  <summary>
2781
- Returns an enumerator that iterates through the lifetime container.
3134
+ Returns an enumerator that iterates through a collection.
2782
3135
  </summary>
3136
+
2783
3137
  <returns>
2784
- An <see cref="T:System.Collections.IEnumerator"/> object that can be used to iterate through the life time container.
3138
+ An <see cref="T:System.Collections.IEnumerator"></see> object that can be used to iterate through the collection.
2785
3139
  </returns>
3140
+ <filterpriority>2</filterpriority>
2786
3141
  </member>
2787
- <member name="M:Microsoft.Practices.ObjectBuilder2.LifetimeContainer.Remove(System.Object)">
3142
+ <member name="T:Microsoft.Practices.ObjectBuilder2.DynamicMethodConstructorStrategy">
2788
3143
  <summary>
2789
- Removes an item from the lifetime container. The item is
2790
- not disposed.
3144
+ A <see cref="T:Microsoft.Practices.ObjectBuilder2.BuilderStrategy"/> that emits IL to call constructors
3145
+ as part of creating a build plan.
2791
3146
  </summary>
2792
- <param name="item">The item to be removed.</param>
2793
3147
  </member>
2794
- <member name="P:Microsoft.Practices.ObjectBuilder2.LifetimeContainer.Count">
3148
+ <member name="M:Microsoft.Practices.ObjectBuilder2.DynamicMethodConstructorStrategy.PreBuildUp(Microsoft.Practices.ObjectBuilder2.IBuilderContext)">
2795
3149
  <summary>
2796
- Gets the number of references in the lifetime container
3150
+ Called during the chain of responsibility for a build operation.
2797
3151
  </summary>
2798
- <value>
2799
- The number of references in the lifetime container
2800
- </value>
3152
+ <remarks>Existing object is an instance of <see cref="T:Microsoft.Practices.ObjectBuilder2.DynamicBuildPlanGenerationContext"/>.</remarks>
3153
+ <param name="context">The context for the operation.</param>
2801
3154
  </member>
2802
- <member name="T:Microsoft.Practices.ObjectBuilder2.SelectedMethod">
3155
+ <member name="M:Microsoft.Practices.ObjectBuilder2.DynamicMethodConstructorStrategy.ThrowForNullExistingObject(Microsoft.Practices.ObjectBuilder2.IBuilderContext)">
2803
3156
  <summary>
2804
- Objects of this type are the return value from <see cref="M:Microsoft.Practices.ObjectBuilder2.IMethodSelectorPolicy.SelectMethods(Microsoft.Practices.ObjectBuilder2.IBuilderContext)"/>.
2805
- It encapsulates the desired <see cref="T:System.Reflection.MethodInfo"/> with the string keys
2806
- needed to look up the <see cref="T:Microsoft.Practices.ObjectBuilder2.IDependencyResolverPolicy"/> for each
2807
- parameter.
3157
+ A helper method used by the generated IL to throw an exception if
3158
+ a dependency cannot be resolved.
2808
3159
  </summary>
3160
+ <param name="context">The <see cref="T:Microsoft.Practices.ObjectBuilder2.IBuilderContext"/> currently being
3161
+ used for the build of this object.</param>
2809
3162
  </member>
2810
- <member name="M:Microsoft.Practices.ObjectBuilder2.SelectedMethod.#ctor(System.Reflection.MethodInfo)">
3163
+ <member name="M:Microsoft.Practices.ObjectBuilder2.DynamicMethodConstructorStrategy.ThrowForResolutionFailed(System.Exception,System.String,System.String,Microsoft.Practices.ObjectBuilder2.IBuilderContext)">
2811
3164
  <summary>
2812
- Create a new <see cref="T:Microsoft.Practices.ObjectBuilder2.SelectedMethod"/> instance which
2813
- contains the given method.
3165
+ A helper method used by the generated IL to throw an exception if a parameter
3166
+ fails to resolve.
2814
3167
  </summary>
2815
- <param name="method">The method</param>
3168
+ <param name="inner">Inner exception to throw.</param>
3169
+ <param name="parameterName">Name of the parameter that was attempted to be resolved.</param>
3170
+ <param name="constructorSignature">String describing which constructor we were calling.</param>
3171
+ <param name="context">Current build context.</param>
2816
3172
  </member>
2817
- <member name="P:Microsoft.Practices.ObjectBuilder2.SelectedMethod.Method">
3173
+ <member name="M:Microsoft.Practices.ObjectBuilder2.DynamicMethodConstructorStrategy.ThrowForAttemptingToConstructInterface(Microsoft.Practices.ObjectBuilder2.IBuilderContext)">
2818
3174
  <summary>
2819
- The constructor this object wraps.
3175
+ A helper method used by the generated IL to throw an exception if
3176
+ no existing object is present, but the user is attempting to build
3177
+ an interface (usually due to the lack of a type mapping).
2820
3178
  </summary>
3179
+ <param name="context"></param>
2821
3180
  </member>
2822
3181
  </members>
2823
3182
  </doc>