你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

Application.ApplicationParameters 属性

定义

获取在创建应用程序时或通过应用程序升级被用户重写的应用程序的列表 ApplicationParameter。 请注意,此参数列表不包括仍具有应用程序清单中的默认值的参数。 若要从清单中找出仍具有默认值的应用程序参数,可以使用 GetApplication 查询返回的 ApplicationParameters 和 GetApplicationType 查询返回的 DefaultParameters;可以通过从 DefaultParameters 列表中排除 ApplicationParameters 列表中的所有参数来查找仍具有清单中默认值的参数。

public System.Fabric.Description.ApplicationParameterList ApplicationParameters { get; }
member this.ApplicationParameters : System.Fabric.Description.ApplicationParameterList
Public ReadOnly Property ApplicationParameters As ApplicationParameterList

属性值

应用程序的重写参数。

示例

以下示例演示如何从应用程序清单获取重写的参数和仍具有默认值的参数和参数。

// Custom comparer for ApplicationParameter class to compare if two application parameters have the same name.
class ApplicationParameterNameComparer : IEqualityComparer<ApplicationParameter>
{
    // Here we consider two ApplicationParameters are equal if they have the same name.
    // In general though, two application parameters should be considered equal only if their names and their values are equal.
    public bool Equals(ApplicationParameter x, ApplicationParameter y)
    {
        return x.Name.Equals(y.Name);
    }

    public int GetHashCode(ApplicationParameter applicationParameter)
    {
        return applicationParameter.Name.GetHashCode();
    }
}

using (var fabricClient = new FabricClient(clientConnectionString))
{
    ApplicationList applicationList = await fabricClient.QueryManager.GetApplicationListAsync(applicationUri);

    Application application = applicationList.First();

    // If no parameters have been overridden during application creation or through application upgrade, then overridenParameters would be empty.
    ApplicationParameterList overridenParameters = application.ApplicationParameters;

    ApplicationTypeList applicationTypeList = await fabricClient.QueryManager.GetApplicationTypeListAsync(application.ApplicationTypeName);

    ApplicationType applicationType = applicationTypeList.First();

    ApplicationParameterList parametersFromApplicationManifest = applicationType.DefaultParameters;

    // If no parameters have been overridden during application creation or through application upgrade, then parametersStillHavingDefaultValues would be equal to parametersFromApplicationManifest.
    IEnumerable<ApplicationParameter> parametersStillHavingDefaultValues = parametersFromApplicationManifest.Except(overridenParameters, new ApplicationParameterNameComparer());
}

适用于