unity 1.1.0.0 → 1.2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -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>