Adapter.Interfaces.Source (nuget): Only two APIs are provided: the IAdapterService and its facade extension method As in the Adapters type.                          You can chose to use the former service directly instead of the convenience extension method. You don't              lose any testability in doing either way, although you do need to pass around the adapter service in one              case.                          ======= Example =======             // Calling code assumes there is a service always setup before invoking.              // If there isn't, an InvalidOperationException is thrown automatically.                          // Use adapter extension method As as needed, i.e.                         // say we need to use it as an MSBuild project, if possible             IMSBuildProject msbuild = project.As<IMSBuildProject>();             if (msbuild != null)                 // do MSBuild stuff with it.
Keywords: patterns|adapter