…e requirement
The capability has always existed and is what the runtime factory tests exercise: with a Factory (or, on a singleton, Instance) member the container constructs nothing, so the registration type argument may be an interface or abstract type, naming only the service. Nothing user-facing said so: the attribute docs called the type argument the concrete type to construct, and AWT103 answered register a concrete type with no second exit. A real migration (testing-plan rung 3) read both and built an unnecessary delegating wrapper around a library factory returning an internal type.
The attribute XML docs and the AWT103 message and doc entry now name the member exit, generator tests pin that AWT103 stays silent for an interface produced by a Factory or an Instance member, and a runtime test pins the interface-typed Instance member shape the factory tests did not cover.
The capability has always existed and is what the runtime factory tests exercise: with a
Factory(or, on a singleton,Instance) member the container constructs nothing, so the registration type argument may be an interface or abstract type, naming only the service. Nothing user-facing said so: the attribute docs called the type argument "the concrete type to construct", and AWT103 answered "Register a concrete type" with no second exit. A real migration (testing-plan rung 3, Camelot) read both and built an unnecessary delegating wrapper around a library factory returning an internal type.[Singleton<T>]/[Scoped<T>]/[Transient<T>]XML docs now name the member exit and qualify the concrete-type requirement.Factoryand by anInstancemember.Instancemember shape the factory tests did not cover.No behavior changes; the public API baseline is untouched.