| File: ApplicationModel\ProjectResourceExtensions.cs | Web Access |
| Project: src\src\Aspire.Hosting\Aspire.Hosting.csproj (Aspire.Hosting) |
// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. namespace Aspire.Hosting.ApplicationModel; /// <summary> /// Provides extension methods for <see cref="DistributedApplicationModel"/> to work with <see cref="ProjectResource"/> instances. /// </summary> public static class ProjectResourceExtensions { /// <summary> /// Returns all project resources in the distributed application model. /// </summary> /// <param name="model">The distributed application model.</param> /// <returns>An enumerable collection of project resources.</returns> public static IEnumerable<ProjectResource> GetProjectResources(this DistributedApplicationModel model) { ArgumentNullException.ThrowIfNull(model); return model.Resources.OfType<ProjectResource>(); } /// <summary> /// Gets the project metadata for the specified project resource. /// </summary> /// <param name="projectResource">The project resource.</param> /// <returns>The project metadata.</returns> /// <exception cref="InvalidOperationException">Thrown when the project resource doesn't have project metadata.</exception> public static IProjectMetadata GetProjectMetadata(this ProjectResource projectResource) { ArgumentNullException.ThrowIfNull(projectResource); return projectResource.Annotations.OfType<IProjectMetadata>().Single(); } }