/
githubmirror
/
roslyn
Обзор
Документация
Войти
/
githubmirror
/
roslyn
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
src/Scripting/Core/ScriptSourceResolver.cs
56 строк
2 KB
Jared Parsons
generated move
28 сен 2020, 19:36
28 сен 2020, 19:36
1cca63b
Код
Авторство
О чём код?
// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. // See the LICENSE file in the project root for more information. #nullable disable using System; using System.Collections.Generic; using System.Collections.Immutable; namespace Microsoft.CodeAnalysis.Scripting { using static ParameterValidationHelpers; public sealed class ScriptSourceResolver : SourceFileResolver, IEquatable<ScriptSourceResolver> { public static new ScriptSourceResolver Default { get; } = new ScriptSourceResolver(ImmutableArray<string>.Empty, null); private ScriptSourceResolver(ImmutableArray<string> sourcePaths, string baseDirectory) : base(sourcePaths, baseDirectory) { } public ScriptSourceResolver WithSearchPaths(params string[] searchPaths) => WithSearchPaths(searchPaths.AsImmutableOrEmpty()); public ScriptSourceResolver WithSearchPaths(IEnumerable<string> searchPaths) => WithSearchPaths(searchPaths.AsImmutableOrEmpty()); public ScriptSourceResolver WithSearchPaths(ImmutableArray<string> searchPaths) { if (SearchPaths == searchPaths) { return this; } return new ScriptSourceResolver(ToImmutableArrayChecked(searchPaths, nameof(searchPaths)), BaseDirectory); } public ScriptSourceResolver WithBaseDirectory(string baseDirectory) { if (BaseDirectory == baseDirectory) { return this; } // absolute path check is done in the base class return new ScriptSourceResolver(SearchPaths, baseDirectory); } public bool Equals(ScriptSourceResolver other) => base.Equals(other); public override int GetHashCode() => base.GetHashCode(); public override bool Equals(object obj) => base.Equals(obj); } }