3 instantiations of ReferenceExpression
Aspire.Hosting (3)
1107 references to ReferenceExpression
Aspire.Hosting (141)
ApplicationModel\ReferenceExpression.cs (31)
18/// A <see cref="ReferenceExpression"/> operates in one of two modes:
37public static readonly ReferenceExpression Empty = Create(string.Empty, [], [], []);
43private readonly ReferenceExpression? _whenTrue;
44private readonly ReferenceExpression? _whenFalse;
60private ReferenceExpression(IValueProvider condition, string matchValue, ReferenceExpression whenTrue, ReferenceExpression whenFalse)
118public ReferenceExpression? WhenTrue => _whenTrue;
124public ReferenceExpression? WhenFalse => _whenFalse;
194var branch = string.Equals(conditionValue, _matchValue, StringComparison.OrdinalIgnoreCase) ? _whenTrue! : _whenFalse!;
230internal static ReferenceExpression Create(string format, IValueProvider[] valueProviders, string[] manifestExpressions, string?[] stringFormats)
236/// Creates a new instance of <see cref="ReferenceExpression"/> with the specified format and value providers.
239/// <returns>A new instance of <see cref="ReferenceExpression"/> with the specified format and value providers.</returns>
240public static ReferenceExpression Create(in ExpressionInterpolatedStringHandler handler)
246/// Creates a conditional <see cref="ReferenceExpression"/> that selects between two branch expressions
255/// <returns>A new conditional <see cref="ReferenceExpression"/>.</returns>
256public static ReferenceExpression CreateConditional(IValueProvider condition, string matchValue, ReferenceExpression whenTrue, ReferenceExpression whenFalse)
261private static string GenerateConditionalName(IValueProvider condition, string matchValue, ReferenceExpression whenTrue, ReferenceExpression whenFalse)
280private static string ComputeConditionalHash(IValueProvider condition, ReferenceExpression whenTrue, ReferenceExpression whenFalse, string matchValue)
387public void AppendFormatted(ReferenceExpression valueProvider, string format)
436internal readonly ReferenceExpression GetExpression() =>
482/// A builder for creating <see cref="ReferenceExpression"/> instances.
560public void AppendFormatted(ReferenceExpression valueProvider, string format)
613/// Builds the <see cref="ReferenceExpression"/>.
616public ReferenceExpression Build() =>
617ReferenceExpression.Create(_builder.ToString(), [.. _valueProviders], [.. _manifestExpressions], [.. _stringFormats]);
625/// <param name="builder">The builder that will be used to create the <see cref="ReferenceExpression"/>.</param>
666public void AppendFormatted(ReferenceExpression valueProvider, string format)
Dcp\DcpExecutor.cs (11)
1773CertificateBundlePath = ReferenceExpression.Create($"{bundleOutputPath}"),
1775CertificateDirectoriesPath = ReferenceExpression.Create($"{string.Join(Path.PathSeparator, dirs)}"),
1781CertificatePath = ReferenceExpression.Create($"{Path.Join(baseServerAuthOutputPath, $"{cert.Thumbprint}.crt")}"),
1782KeyPath = ReferenceExpression.Create($"{Path.Join(baseServerAuthOutputPath, $"{cert.Thumbprint}.key")}"),
1783PfxPath = ReferenceExpression.Create($"{Path.Join(baseServerAuthOutputPath, $"{cert.Thumbprint}.pfx")}"),
2177CertificateBundlePath = ReferenceExpression.Create($"{certificatesDestination}/cert.pem"),
2179CertificateDirectoriesPath = ReferenceExpression.Create($"{string.Join(':', dirs)}"),
2186CertificatePath = ReferenceExpression.Create($"{serverAuthCertificatesBasePath}/{cert.Thumbprint}.crt"),
2187KeyPath = ReferenceExpression.Create($"{serverAuthCertificatesBasePath}/{cert.Thumbprint}.key"),
2188PfxPath = ReferenceExpression.Create($"{serverAuthCertificatesBasePath}/{cert.Thumbprint}.pfx"),
2252CertificatePath = ReferenceExpression.Create($"{serverAuthCertificatesBasePath}/{thumbprint}.crt"),
ResourceBuilderExtensions.cs (12)
54public static IResourceBuilder<T> WithEnvironment<T>(this IResourceBuilder<T> builder, string name, in ReferenceExpression.ExpressionInterpolatedStringHandler value)
60var expression = value.GetExpression();
94public static IResourceBuilder<T> WithEnvironment<T>(this IResourceBuilder<T> builder, string name, ReferenceExpression value)
321public static IResourceBuilder<T> WithConnectionProperty<T>(this IResourceBuilder<T> builder, string name, ReferenceExpression value) where T : IResourceWithConnectionString
344return builder.WithAnnotation(new ConnectionPropertyAnnotation(name, ReferenceExpression.Create($"{value}")));
764public static ReferenceExpression GetConnectionProperty(this IResourceWithConnectionString resource, string key)
774return ReferenceExpression.Empty;
1419public static IResourceBuilder<T> WithUrl<T>(this IResourceBuilder<T> builder, in ReferenceExpression.ExpressionInterpolatedStringHandler url, string? displayText = null)
1424var expression = url.GetExpression();
1434/// <param name="url">A <see cref="ReferenceExpression"/> that will produce the URL.</param>
1442public static IResourceBuilder<T> WithUrl<T>(this IResourceBuilder<T> builder, ReferenceExpression url, string? displayText = null)
3027ReferenceExpression expression) where T : IResource
Aspire.Hosting.Azure (11)
Aspire.Hosting.Azure.AppConfiguration (3)
Aspire.Hosting.Azure.AppContainers (9)
Aspire.Hosting.Azure.ApplicationInsights (2)
Aspire.Hosting.Azure.AppService (10)
Aspire.Hosting.Azure.CognitiveServices (10)
Aspire.Hosting.Azure.ContainerRegistry (4)
Aspire.Hosting.Azure.CosmosDB (22)
Aspire.Hosting.Azure.EventHubs (18)
Aspire.Hosting.Azure.Functions (1)
Aspire.Hosting.Azure.KeyVault (9)
Aspire.Hosting.Azure.Kusto (11)
Aspire.Hosting.Azure.Kusto.Tests (2)
Aspire.Hosting.Azure.Network (5)
Aspire.Hosting.Azure.PostgreSQL (39)
Aspire.Hosting.Azure.Redis (26)
Aspire.Hosting.Azure.Search (5)
Aspire.Hosting.Azure.ServiceBus (22)
Aspire.Hosting.Azure.SignalR (7)
Aspire.Hosting.Azure.Sql (26)
Aspire.Hosting.Azure.Storage (49)
Aspire.Hosting.Azure.Tests (82)
Aspire.Hosting.Azure.WebPubSub (14)
Aspire.Hosting.CodeGeneration.Go.Tests (3)
Aspire.Hosting.CodeGeneration.Java.Tests (3)
Aspire.Hosting.CodeGeneration.Python.Tests (3)
Aspire.Hosting.CodeGeneration.Rust.Tests (3)
Aspire.Hosting.CodeGeneration.TypeScript.Tests (3)
Aspire.Hosting.Containers.Tests (2)
Aspire.Hosting.Docker (9)
Aspire.Hosting.Docker.Tests (14)
DockerComposePublisherTests.cs (13)
31var cs = builder.AddConnectionString("cs", ReferenceExpression.Create($"Url={param0}, Secret={param1}"));
941var conditional = ReferenceExpression.CreateConditional(
944ReferenceExpression.Create($",ssl=true"),
945ReferenceExpression.Empty);
949var conditionalFalse = ReferenceExpression.CreateConditional(
952ReferenceExpression.Create($",ssl=true"),
953ReferenceExpression.Create($",ssl=false"));
983var conditional = ReferenceExpression.CreateConditional(
986ReferenceExpression.Create($",ssl=true"),
987ReferenceExpression.Create($",ssl=false"));
Aspire.Hosting.Foundry (24)
Aspire.Hosting.Foundry.Tests (2)
Aspire.Hosting.Garnet (7)
Aspire.Hosting.GitHub.Models (9)
Aspire.Hosting.JavaScript (3)
Aspire.Hosting.JavaScript.Tests (19)
AddViteAppTests.cs (19)
317CertificatePath = ReferenceExpression.Create($"cert.pem"),
318KeyPath = ReferenceExpression.Create($"key.pem"),
319PfxPath = ReferenceExpression.Create($"cert.pfx"),
338Assert.IsType<ReferenceExpression>(env["TLS_CONFIG_PFX"]);
377CertificatePath = ReferenceExpression.Create($"cert.pem"),
378KeyPath = ReferenceExpression.Create($"key.pem"),
379PfxPath = ReferenceExpression.Create($"cert.pfx"),
428CertificatePath = ReferenceExpression.Create($"cert.pem"),
429KeyPath = ReferenceExpression.Create($"key.pem"),
430PfxPath = ReferenceExpression.Create($"cert.pfx"),
484CertificatePath = ReferenceExpression.Create($"cert.pem"),
485KeyPath = ReferenceExpression.Create($"key.pem"),
486PfxPath = ReferenceExpression.Create($"cert.pfx"),
540CertificatePath = ReferenceExpression.Create($"cert.pem"),
541KeyPath = ReferenceExpression.Create($"key.pem"),
542PfxPath = ReferenceExpression.Create($"cert.pfx"),
615CertificatePath = ReferenceExpression.Create($"cert.pem"),
616KeyPath = ReferenceExpression.Create($"key.pem"),
617PfxPath = ReferenceExpression.Create($"cert.pfx"),
Aspire.Hosting.Kafka (11)
Aspire.Hosting.Keycloak (3)
Aspire.Hosting.Kubernetes (6)
Aspire.Hosting.Kubernetes.Tests (20)
KubernetesPublisherTests.cs (19)
25var cs = builder.AddConnectionString("cs", ReferenceExpression.Create($"Url={param0}, Secret={param1}"));
185var cs = builder.AddConnectionString("api-cs", ReferenceExpression.Create($"Url={param0}, Secret={param1}"));
186var csPlain = builder.AddConnectionString("api-cs2", ReferenceExpression.Create($"host.local:80"));
463var conditional = ReferenceExpression.CreateConditional(
466ReferenceExpression.Create($",ssl=true"),
467ReferenceExpression.Empty);
471var conditionalFalse = ReferenceExpression.CreateConditional(
474ReferenceExpression.Create($",ssl=true"),
475ReferenceExpression.Create($",ssl=false"));
525var conditional = ReferenceExpression.CreateConditional(
528ReferenceExpression.Create($",ssl=true"),
529ReferenceExpression.Create($",ssl=false"));
582var conditional = ReferenceExpression.CreateConditional(
585ReferenceExpression.Create($"{tlsSuffix.Resource}"),
586ReferenceExpression.Create($",ssl=false"));
Aspire.Hosting.Milvus (14)
Aspire.Hosting.MongoDB (18)
Aspire.Hosting.MySql (18)
Aspire.Hosting.Nats (10)
Aspire.Hosting.OpenAI (11)
Aspire.Hosting.Oracle (18)
Aspire.Hosting.PostgreSQL (21)
Aspire.Hosting.Qdrant (14)
Aspire.Hosting.RabbitMQ (9)
Aspire.Hosting.Redis (9)
Aspire.Hosting.Redis.Tests (5)
Aspire.Hosting.RemoteHost.Tests (48)
AtsMarshallerTests.cs (38)
980var whenTrue = ReferenceExpression.Create($",ssl=true");
981var whenFalse = ReferenceExpression.Empty;
982var conditional = ReferenceExpression.CreateConditional(condition, bool.TrueString, whenTrue, whenFalse);
999var whenTrue = ReferenceExpression.Create($",ssl=true");
1000var whenFalse = ReferenceExpression.Empty;
1001var conditional = ReferenceExpression.CreateConditional(condition, bool.TrueString, whenTrue, whenFalse);
1019var whenTrue = ReferenceExpression.Create($",ssl=true");
1020var whenFalse = ReferenceExpression.Empty;
1021var conditional = ReferenceExpression.CreateConditional(condition, bool.TrueString, whenTrue, whenFalse);
1026var retrievedConditional = Assert.IsType<ReferenceExpression>(retrieved);
1038var whenTrue = ReferenceExpression.Create($",ssl=true");
1039var whenFalse = ReferenceExpression.Empty;
1040var conditional = ReferenceExpression.CreateConditional(condition, bool.TrueString, whenTrue, whenFalse);
1045var retrievedConditional = Assert.IsType<ReferenceExpression>(retrieved);
1098var result = marshaller.UnmarshalFromJson(json, typeof(ReferenceExpression), context);
1099var cre = Assert.IsType<ReferenceExpression>(result);
1139var result = marshaller.UnmarshalFromJson(json, typeof(ReferenceExpression), context);
1140var cre = Assert.IsType<ReferenceExpression>(result);
1181var result = marshaller.UnmarshalFromJson(json, typeof(ReferenceExpression), context);
1182var cre = Assert.IsType<ReferenceExpression>(result);
1221marshaller.UnmarshalFromJson(json, typeof(ReferenceExpression), context));
ReferenceExpressionRefTests.cs (6)
118var expr = exprRef.ToReferenceExpression(handles, "test/cap", "param");
143var expr = exprRef.ToReferenceExpression(handles, "test/cap", "param");
180var expr = exprRef.ToReferenceExpression(handles, "test/cap", "param");
203var expr = exprRef.ToReferenceExpression(handles, "test/cap", "param");
233public ReferenceExpression ToReferenceExpression(HandleRegistry handles, string capabilityId, string paramName)
255return (ReferenceExpression)exprRef!.ToReferenceExpression(handles, capabilityId, paramName);
Aspire.Hosting.Seq (7)
Aspire.Hosting.SqlServer (22)
Aspire.Hosting.Tests (200)
ConditionalReferenceExpressionTests.cs (35)
14var whenTrue = ReferenceExpression.Create($",ssl=true");
15var whenFalse = ReferenceExpression.Empty;
17var expr = ReferenceExpression.CreateConditional(condition, bool.TrueString, whenTrue, whenFalse);
27var whenTrue = ReferenceExpression.Create($",ssl=true");
28var whenFalse = ReferenceExpression.Empty;
30var expr = ReferenceExpression.CreateConditional(condition, bool.TrueString, whenTrue, whenFalse);
40var whenTrue = ReferenceExpression.Create($",ssl=true");
41var whenFalse = ReferenceExpression.Empty;
43var expr = ReferenceExpression.CreateConditional(condition, bool.TrueString, whenTrue, whenFalse);
53var whenTrue = ReferenceExpression.Create($",ssl=true");
54var whenFalse = ReferenceExpression.Empty;
56var conditional = ReferenceExpression.CreateConditional(condition, bool.TrueString, whenTrue, whenFalse);
61var expression = builder.Build();
82var whenTrue = ReferenceExpression.Create($",ssl=true");
83var whenFalse = ReferenceExpression.Empty;
85var expr = ReferenceExpression.CreateConditional(condition, bool.TrueString, whenTrue, whenFalse);
94var expr = ReferenceExpression.CreateConditional(new TestValueProvider(bool.TrueString), bool.TrueString, ReferenceExpression.Empty, ReferenceExpression.Empty);
ConnectionPropertiesExtensionsTests.cs (14)
16new KeyValuePair<string, ReferenceExpression>("Host", ReferenceExpression.Create($"resourceHost")),
17new KeyValuePair<string, ReferenceExpression>("Port", ReferenceExpression.Create($"8080")),
22new KeyValuePair<string, ReferenceExpression>("Port", ReferenceExpression.Create($"9090")),
23new KeyValuePair<string, ReferenceExpression>("Username", ReferenceExpression.Create($"user")),
39private sealed class TestResource(string name, IEnumerable<KeyValuePair<string, ReferenceExpression>> properties)
42private readonly IReadOnlyList<KeyValuePair<string, ReferenceExpression>> _properties = new List<KeyValuePair<string, ReferenceExpression>>(properties);
44public ReferenceExpression ConnectionStringExpression { get; } = ReferenceExpression.Create($"{name}.connectionString");
46IEnumerable<KeyValuePair<string, ReferenceExpression>> IResourceWithConnectionString.GetConnectionProperties() => _properties;
ExpressionResolverTests.cs (17)
289public ReferenceExpression ConnectionStringExpression =>
290ReferenceExpression.Create($"{PrimaryEndpoint.Property(EndpointProperty.Url)}");
307Dictionary<string, ReferenceExpression> Expressions { get; }
314{ "TwoFullEndpoints", ReferenceExpression.Create($"Test1={Endpoint1.Property(EndpointProperty.Scheme)}://{Endpoint1.Property(EndpointProperty.IPV4Host)}:{Endpoint1.Property(EndpointProperty.Port)}/;Test2={Endpoint2.Property(EndpointProperty.Scheme)}://{Endpoint2.Property(EndpointProperty.Host)}:{Endpoint2.Property(EndpointProperty.Port)}/;") },
315{ "Url", ReferenceExpression.Create($"Url={Endpoint1.Property(EndpointProperty.Url)};") },
316{ "Url2", ReferenceExpression.Create($"Url={Endpoint1};") },
317{ "OnlyHost", ReferenceExpression.Create($"Host={Endpoint1.Property(EndpointProperty.Host)};") },
318{ "OnlyPort", ReferenceExpression.Create($"Port={Endpoint1.Property(EndpointProperty.Port)};") },
319{ "HostAndPort", ReferenceExpression.Create($"HostPort={Endpoint1.Property(EndpointProperty.HostAndPort)}") },
320{ "PortBeforeHost", ReferenceExpression.Create($"Port={Endpoint1.Property(EndpointProperty.Port)};Host={Endpoint1.Property(EndpointProperty.Host)};") },
321{ "FullAndPartial", ReferenceExpression.Create($"Test1={Endpoint1.Property(EndpointProperty.Scheme)}://{Endpoint1.Property(EndpointProperty.IPV4Host)}:{Endpoint1.Property(EndpointProperty.Port)}/;Test2={Endpoint2.Property(EndpointProperty.Scheme)}://localhost:{Endpoint2.Property(EndpointProperty.Port)}/;") },
322{ "Empty", ReferenceExpression.Empty },
323{ "String", ReferenceExpression.Create($"String") },
324{ "SecretParameter", ReferenceExpression.Create("SecretParameter", [new ParameterResource("SecretParameter", _ => "SecretParameter", secret: true)], [], [null]) },
325{ "NonSecretParameter", ReferenceExpression.Create("NonSecretParameter", [new ParameterResource("NonSecretParameter", _ => "NonSecretParameter", secret: false)], [], [null]) },
326{ "UrlEncodedHost", ReferenceExpression.Create($"Host={Endpoint3.Property(EndpointProperty.Host):uri};") },
330public ReferenceExpression ConnectionStringExpression => Expressions[_exprName];
ReferenceExpressionTests.cs (52)
19var refExpression = ReferenceExpression.Create($"Hello {input}");
37var expr = ReferenceExpression.Create($"{input}").ValueExpression;
48var expr = ReferenceExpression.Create($"{input}", [new HostUrl("test")], parameters, []).ValueExpression;
62var expr = ReferenceExpression.Create($"{input}", [new HostUrl("test")], [parameterValue], []).ValueExpression;
70var expr = ReferenceExpression.Create($"{s}").ValueExpression;
79var expr = ReferenceExpression.Create($"[{{\"api_uri\":\"{v}\"}}]");
90var expr = ReferenceExpression.Create($"[{{{{\"api_uri\":\"{v}\"}}}}]");
101var expr = ReferenceExpression.Create($"Text: {v:uri}");
143var whenTrue = ReferenceExpression.Create($"prefix-{param1}-{param2}");
144var whenFalse = ReferenceExpression.Create($"fallback-{param3}");
146var conditional = ReferenceExpression.CreateConditional(condition, "True", whenTrue, whenFalse);
160var whenTrue = ReferenceExpression.Create($"literal-a");
161var whenFalse = ReferenceExpression.Create($"literal-b");
163var conditional = ReferenceExpression.CreateConditional(condition, "True", whenTrue, whenFalse);
176var whenTrue = ReferenceExpression.Create($"{param1}");
177var whenFalse = ReferenceExpression.Create($"{param2}");
179var conditional = ReferenceExpression.CreateConditional(condition, "True", whenTrue, whenFalse);
199var innerConditional = ReferenceExpression.CreateConditional(
201ReferenceExpression.Create($"{param1}"),
202ReferenceExpression.Create($"{param2}"));
205var outerConditional = ReferenceExpression.CreateConditional(
208ReferenceExpression.Create($"{param3}"));
227var innerConditional = ReferenceExpression.CreateConditional(
229ReferenceExpression.Create($"{param1}"),
230ReferenceExpression.Create($"{param2}"));
232var outerConditional = ReferenceExpression.CreateConditional(
235ReferenceExpression.Create($"{param3}"));
256var conditional1 = ReferenceExpression.CreateConditional(
258ReferenceExpression.Create($"{param1}"),
259ReferenceExpression.Create($"{param2}"));
261var conditional2 = ReferenceExpression.CreateConditional(
263ReferenceExpression.Create($"{param1}"),
264ReferenceExpression.Create($"{param2}"));
Aspire.Hosting.Valkey (7)
Aspire.Hosting.Yarp.Tests (2)
ParameterEndToEnd.AppHost (1)
TestingAppHost1.AppHost (1)