Class SdkModelPlugin
A model plugin is one or more implementations of IModelPlugin that modifies the behavior of an interface implementation by wrapping around an existing instance and selectively overriding members.
Implements
Inherited Members
Namespace: StrixMusic.Sdk.Plugins.Model
Assembly: StrixMusic.Sdk.dll
Syntax
public class SdkModelPlugin : IModelPlugin
Remarks
Contains a chainable plugin builder for every relevant model interface used
in the Strix Music SDK.
When the chain is built, the first added Plugin is returned, with the next Plugin provided during construction for
proxying, which also had the next item passed into it during construction, and so on.
When accessing a member, a plugin may retrieve data from the next plugin (or, if none, the actual implementation), and
transform or replace it as needed.
A plugin may ignore the inner implementation entirely and supply new data.
Or, a plugin might not override that member and simply relay data from the actual implementation.
Constructors
| Improve this Doc View SourceSdkModelPlugin(ModelPluginMetadata, params SdkModelPlugin[])
Initializes a new instance of the SdkModelPlugin class.
Declaration
public SdkModelPlugin(ModelPluginMetadata metadata, params SdkModelPlugin[] pluginsToImport)
Parameters
Type | Name | Description |
---|---|---|
ModelPluginMetadata | metadata | Metadata that identifies this plugin. |
SdkModelPlugin[] | pluginsToImport | The plugins that are imported into this new instance. |
SdkModelPlugin(ModelPluginMetadata)
Initializes a new instance of the SdkModelPlugin class.
Declaration
public SdkModelPlugin(ModelPluginMetadata metadata)
Parameters
Type | Name | Description |
---|---|---|
ModelPluginMetadata | metadata | Metadata that identifies this plugin. |
Properties
| Improve this Doc View SourceAlbum
All plugins that provide overridden behavior for IAlbum.
Declaration
public ChainedProxyBuilder<AlbumPluginBase, IAlbum> Album { get; }
Property Value
Type | Description |
---|---|
ChainedProxyBuilder<AlbumPluginBase, IAlbum> |
AlbumCollection
All plugins that provide overridden behavior for IAlbumCollection.
Declaration
public ChainedProxyBuilder<AlbumCollectionPluginBase, IAlbumCollection> AlbumCollection { get; }
Property Value
Type | Description |
---|---|
ChainedProxyBuilder<AlbumCollectionPluginBase, IAlbumCollection> |
Artist
All plugins that provide overridden behavior for IArtist.
Declaration
public ChainedProxyBuilder<ArtistPluginBase, IArtist> Artist { get; }
Property Value
Type | Description |
---|---|
ChainedProxyBuilder<ArtistPluginBase, IArtist> |
ArtistCollection
All plugins that provide overridden behavior for IArtistCollection.
Declaration
public ChainedProxyBuilder<ArtistCollectionPluginBase, IArtistCollection> ArtistCollection { get; }
Property Value
Type | Description |
---|---|
ChainedProxyBuilder<ArtistCollectionPluginBase, IArtistCollection> |
Discoverables
All plugins that provide overridden behavior for IDiscoverables.
Declaration
public ChainedProxyBuilder<DiscoverablesPluginBase, IDiscoverables> Discoverables { get; }
Property Value
Type | Description |
---|---|
ChainedProxyBuilder<DiscoverablesPluginBase, IDiscoverables> |
Downloadable
All plugins that provide overridden behavior for IDownloadable.
Declaration
public ChainedProxyBuilder<DownloadablePluginBase, IDownloadable> Downloadable { get; }
Property Value
Type | Description |
---|---|
ChainedProxyBuilder<DownloadablePluginBase, IDownloadable> |
GenreCollection
All plugins that provide overridden behavior for IGenreCollection.
Declaration
public ChainedProxyBuilder<GenreCollectionPluginBase, IGenreCollection> GenreCollection { get; }
Property Value
Type | Description |
---|---|
ChainedProxyBuilder<GenreCollectionPluginBase, IGenreCollection> |
Image
All plugins that provide overridden behavior for IImage.
Declaration
public ChainedProxyBuilder<ImagePluginBase, IImage> Image { get; }
Property Value
Type | Description |
---|---|
ChainedProxyBuilder<ImagePluginBase, IImage> |
ImageCollection
All plugins that provide overridden behavior for IImageCollection.
Declaration
public ChainedProxyBuilder<ImageCollectionPluginBase, IImageCollection> ImageCollection { get; }
Property Value
Type | Description |
---|---|
ChainedProxyBuilder<ImageCollectionPluginBase, IImageCollection> |
Library
All plugins that provide overridden behavior for ILibrary.
Declaration
public ChainedProxyBuilder<LibraryPluginBase, ILibrary> Library { get; }
Property Value
Type | Description |
---|---|
ChainedProxyBuilder<LibraryPluginBase, ILibrary> |
Lyrics
All plugins that provide overridden behavior for ILyrics.
Declaration
public ChainedProxyBuilder<LyricsPluginBase, ILyrics> Lyrics { get; }
Property Value
Type | Description |
---|---|
ChainedProxyBuilder<LyricsPluginBase, ILyrics> |
Metadata
The plugin metadata that was provided during registration.
Declaration
public ModelPluginMetadata Metadata { get; }
Property Value
Type | Description |
---|---|
ModelPluginMetadata |
Playable
All plugins that provide overridden behavior for IPlayable.
Declaration
public ChainedProxyBuilder<PlayablePluginBase, IPlayable> Playable { get; }
Property Value
Type | Description |
---|---|
ChainedProxyBuilder<PlayablePluginBase, IPlayable> |
PlayableCollectionGroup
All plugins that provide overridden behavior for IPlayableCollectionGroup.
Declaration
public ChainedProxyBuilder<PlayableCollectionGroupPluginBase, IPlayableCollectionGroup> PlayableCollectionGroup { get; }
Property Value
Type | Description |
---|---|
ChainedProxyBuilder<PlayableCollectionGroupPluginBase, IPlayableCollectionGroup> |
Playlist
All plugins that provide overridden behavior for IPlaylist.
Declaration
public ChainedProxyBuilder<PlaylistPluginBase, IPlaylist> Playlist { get; }
Property Value
Type | Description |
---|---|
ChainedProxyBuilder<PlaylistPluginBase, IPlaylist> |
PlaylistCollection
All plugins that provide overridden behavior for IPlaylistCollection.
Declaration
public ChainedProxyBuilder<PlaylistCollectionPluginBase, IPlaylistCollection> PlaylistCollection { get; }
Property Value
Type | Description |
---|---|
ChainedProxyBuilder<PlaylistCollectionPluginBase, IPlaylistCollection> |
RecentlyPlayed
All plugins that provide overridden behavior for IRecentlyPlayed.
Declaration
public ChainedProxyBuilder<RecentlyPlayedPluginBase, IRecentlyPlayed> RecentlyPlayed { get; }
Property Value
Type | Description |
---|---|
ChainedProxyBuilder<RecentlyPlayedPluginBase, IRecentlyPlayed> |
SearchHistory
All plugins that provide overridden behavior for ISearchHistory.
Declaration
public ChainedProxyBuilder<SearchHistoryPluginBase, ISearchHistory> SearchHistory { get; }
Property Value
Type | Description |
---|---|
ChainedProxyBuilder<SearchHistoryPluginBase, ISearchHistory> |
SearchResults
All plugins that provide overridden behavior for ISearchResults.
Declaration
public ChainedProxyBuilder<SearchResultsPluginBase, ISearchResults> SearchResults { get; }
Property Value
Type | Description |
---|---|
ChainedProxyBuilder<SearchResultsPluginBase, ISearchResults> |
StrixDataRoot
All plugins that provide overridden behavior for IStrixDataRoot.
Declaration
public ChainedProxyBuilder<StrixDataRootPluginBase, IStrixDataRoot> StrixDataRoot { get; }
Property Value
Type | Description |
---|---|
ChainedProxyBuilder<StrixDataRootPluginBase, IStrixDataRoot> |
Track
All plugins that provide overridden behavior for ITrack.
Declaration
public ChainedProxyBuilder<TrackPluginBase, ITrack> Track { get; }
Property Value
Type | Description |
---|---|
ChainedProxyBuilder<TrackPluginBase, ITrack> |
TrackCollection
All plugins that provide overridden behavior for ITrackCollection.
Declaration
public ChainedProxyBuilder<TrackCollectionPluginBase, ITrackCollection> TrackCollection { get; }
Property Value
Type | Description |
---|---|
ChainedProxyBuilder<TrackCollectionPluginBase, ITrackCollection> |
Url
All plugins that provide overridden behavior for IUrl.
Declaration
public ChainedProxyBuilder<UrlPluginBase, IUrl> Url { get; }
Property Value
Type | Description |
---|---|
ChainedProxyBuilder<UrlPluginBase, IUrl> |
UrlCollection
All plugins that provide overridden behavior for IUrlCollection.
Declaration
public ChainedProxyBuilder<UrlCollectionPluginBase, IUrlCollection> UrlCollection { get; }
Property Value
Type | Description |
---|---|
ChainedProxyBuilder<UrlCollectionPluginBase, IUrlCollection> |
Methods
| Improve this Doc View SourceImport(SdkModelPlugin)
Copies all plugins from the provided modelPlugin
into this instance.
Declaration
public void Import(SdkModelPlugin modelPlugin)
Parameters
Type | Name | Description |
---|---|---|
SdkModelPlugin | modelPlugin | The plugin collection to import into this instance. |