You are creating a Windows application by using the .NET Framework 3.5. The application is used to schedule appointments. The application contains a scheduling component that will perform the following tasks:
* Return available appointments.
* Add a new appointment to a calendar.
* The initial implementation of the scheduling component must be deployed.
You need to recommend a strategy to allow replacement of the scheduling component without changing compiled code. Which three actions should you
recommend? (Each correct answer presents part of the solution. Choose three.)
A.
Use reflection to load the configured type dynamically.
B.
Specify the implementation type and its assembly in configuration.
C.
Create an interface that describes the service properties and methods. Create types that implement this interface.
D.
Create an attribute for the service, and apply this attribute to all types that provide an implementation.
E.
Create an attribute for the service. Dynamically discover and load all types by using the attribute.
F.
Define a generic class that implements the service properties and methods. Create types that inherit from this generic class, and provide a type parameter.