< Summary

Information
Class: MyNet.UI.Locators.ViewModelLocator
Assembly: MyNet.UI
File(s): https://raw.githubusercontent.com/sandre58/MyNet/85372080fe102cd9ee155ceab49ae000e7f66103/src/MyNet.UI/Locators/ViewModelLocator.cs
Tag: 323_28699572109
Line coverage
100%
Covered lines: 3
Uncovered lines: 0
Coverable lines: 3
Total lines: 37
Line coverage: 100%
Branch coverage
100%
Covered branches: 2
Total branches: 2
Branch coverage: 100%
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity Line coverage
Get(...)100%22100%
Get()100%11100%

File(s)

https://raw.githubusercontent.com/sandre58/MyNet/85372080fe102cd9ee155ceab49ae000e7f66103/src/MyNet.UI/Locators/ViewModelLocator.cs

#LineLine coverage
 1// -----------------------------------------------------------------------
 2// <copyright file="ViewModelLocator.cs" company="Stéphane ANDRE">
 3// Copyright (c) Stéphane ANDRE. All rights reserved.
 4// </copyright>
 5// -----------------------------------------------------------------------
 6
 7using System;
 8
 9namespace MyNet.UI.Locators;
 10
 11/// <summary>
 12/// Implements a view model locator that uses an IServiceProvider to resolve view model instances. This allows for depen
 13/// </summary>
 14/// <param name="provider">The service provider used to resolve view model instances.</param>
 15public sealed class ViewModelLocator(IServiceProvider provider) : IViewModelLocator
 16{
 17    /// <summary>
 18    /// Resolves a view model instance based on the specified view model type. The locator uses the provided IServicePro
 19    /// </summary>
 20    /// <param name="viewModelType">The type of the view model to retrieve.</param>
 21    /// <returns>The view model instance.</returns>
 22    public object Get(Type viewModelType)
 23    {
 624        ArgumentNullException.ThrowIfNull(viewModelType);
 25
 626        return provider.GetService(viewModelType) ?? throw new InvalidOperationException($"Cannot create instance of {vi
 27    }
 28
 29    /// <summary>
 30    /// Resolves a view model instance of the specified generic type. This allows for type-safe retrieval of view models
 31    /// </summary>
 32    /// <typeparam name="T">The type of the view model to retrieve.</typeparam>
 33    /// <returns>The view model instance.</returns>
 34    public T Get<T>()
 635        where T : class => (T)Get(typeof(T));
 36}
 37

Methods/Properties

Get(System.Type)
Get()