Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Etkinlikler, etkinliğin yürütme için geçerli olması için belirli bağımsız değişkenlerin bağlanması gerekecek şekilde yapılandırılabilir.
RequiredArgument özniteliği, bir etkinlikte belirli bağımsız değişkenlerin gerekli olduğunu belirtmek için kullanılır ve OverloadGroup öznitelik gerekli bağımsız değişkenlerin kategorilerini birlikte gruplandırmak için kullanılır. Etkinlik yazarları öznitelikleri kullanarak basit veya karmaşık etkinlik doğrulama yapılandırmaları sağlayabilir.
Gerekli bağımsız değişkenleri kullanma
Bir etkinlikte RequiredArgument özniteliğini kullanmak için, istenen bağımsız değişkenleri RequiredArgumentAttribute ile belirtin. Bu örnekte, iki gerekli bağımsız değişkeni olan bir Add etkinlik tanımlanmıştır.
public sealed class Add : CodeActivity<int>
{
[RequiredArgument]
public InArgument<int> Operand1 { get; set; }
[RequiredArgument]
public InArgument<int> Operand2 { get; set; }
protected override int Execute(CodeActivityContext context)
{
return Operand1.Get(context) + Operand2.Get(context);
}
}
XAML'de gerekli bağımsız değişkenler de RequiredArgumentAttribute kullanılarak belirtilir. Bu örnekte Add etkinlik üç bağımsız değişken kullanılarak tanımlanır ve ekleme işlemini gerçekleştirmek için bir Assign<T> etkinlik kullanır.
<Activity x:Class="ValidationDemo.Add" ...>
<x:Members>
<x:Property Name="Operand1" Type="InArgument(x:Int32)">
<x:Property.Attributes>
<RequiredArgumentAttribute />
</x:Property.Attributes>
</x:Property>
<x:Property Name="Operand2" Type="InArgument(x:Int32)">
<x:Property.Attributes>
<RequiredArgumentAttribute />
</x:Property.Attributes>
</x:Property>
<x:Property Name="Result" Type="OutArgument(x:Int32)" />
</x:Members>
<Assign>
<Assign.To>
<OutArgument x:TypeArguments="x:Int32">[Result]</OutArgument>
</Assign.To>
<Assign.Value>
<InArgument x:TypeArguments="x:Int32">[Operand1 + Operand2]</InArgument>
</Assign.Value>
</Assign>
</Activity>
Etkinlik kullanılırsa ve gerekli bağımsız değişkenlerden biri bağlı değilse aşağıdaki doğrulama hatası döndürülür.
Gerekli bir etkinlik bağımsız değişkeni 'Operand1' için değer sağlanmadı.
Uyarı
Doğrulama hatalarını ve uyarılarını denetleme ve işleme hakkında daha fazla bilgi için bkz. Etkinlik Doğrulamasını Çağırma.
Aşırı yükleme gruplarını kullanın
Aşırı yükleme grupları, bir etkinlikte hangi bağımsız değişken bileşimlerinin geçerli olduğunu belirten bir yöntem sağlar. Argümanlar, OverloadGroupAttribute kullanılarak birlikte gruplandırılır. Her gruba tarafından OverloadGroupAttributebelirtilen bir ad verilir. Bir aşırı yükleme grubundaki yalnızca bir bağımsız değişken kümesi bağlı olduğunda etkinlik geçerlidir. Aşağıdaki örnekte bir CreateLocation sınıf tanımlanmıştır.
class CreateLocation: Activity
{
[RequiredArgument]
public InArgument<string> Name { get; set; }
public InArgument<string> Description { get; set; }
[RequiredArgument]
[OverloadGroup("G1")]
public InArgument<int> Latitude { get; set; }
[RequiredArgument]
[OverloadGroup("G1")]
public InArgument<int> Longitude { get; set; }
[RequiredArgument]
[OverloadGroup("G2")]
[OverloadGroup("G3")]
public InArgument<string> Street { get; set; }
[RequiredArgument]
[OverloadGroup("G2")]
public InArgument<string> City { get; set; }
[RequiredArgument]
[OverloadGroup("G2")]
public InArgument<string> State { get; set; }
[RequiredArgument]
[OverloadGroup("G3")]
public InArgument<int> Zip { get; set; }
}
Bu etkinliğin amacı ABD'de bir konum belirtmektir. Bunu yapmak için, etkinliğin kullanıcısı üç bağımsız değişken grubundan birini kullanarak konumu belirtebilir. Bağımsız değişkenlerin geçerli birleşimlerini belirtmek için üç aşırı yükleme grubu tanımlanır.
G1
Latitude ve Longitude bağımsız değişkenlerini içerir.
G2, Street, City ve State içerir.
G3
Street içerir ve Zip.
Name da gerekli bir bağımsız değişkendir, ancak aşırı yükleme grubunun bir parçası değildir. Bu etkinliğin geçerli olması için, Name bir ve yalnızca bir aşırı yükleme grubundaki tüm bağımsız değişkenlerle birlikte bağlanması gerekir.
Aşağıdaki örnekte, Veritabanı Erişim Etkinlikleri örneğinden alınan iki aşırı yükleme grubu vardır: ConnectionString ve ConfigFileSectionName. Bu etkinliğin geçerli olması için ya ProviderName ve ConnectionString bağımsız değişkenleri bağlı olmalı ya da ConfigName bağımsız değişkeni bağlı olmalı, ancak ikisi birden değil.
public class DbUpdate: AsyncCodeActivity
{
[RequiredArgument]
[OverloadGroup("ConnectionString")]
[DefaultValue(null)]
public InArgument<string> ProviderName { get; set; }
[RequiredArgument]
[OverloadGroup("ConnectionString")]
[DependsOn("ProviderName")]
[DefaultValue(null)]
public InArgument<string> ConnectionString { get; set; }
[RequiredArgument]
[OverloadGroup("ConfigFileSectionName")]
[DefaultValue(null)]
public InArgument<string> ConfigName { get; set; }
[DefaultValue(null)]
public CommandType CommandType { get; set; }
[RequiredArgument]
public InArgument<string> Sql { get; set; }
[DependsOn("Sql")]
[DefaultValue(null)]
public IDictionary<string, Argument> Parameters { get; }
[DependsOn("Parameters")]
public OutArgument<int> AffectedRecords { get; set; }
}
Aşırı yükleme grubu tanımlarken:
Aşırı yükleme grubu bir alt küme veya başka bir aşırı yükleme grubunun eşdeğer kümesi olamaz.
Uyarı
Bu kuralın bir özel durumu vardır. Bir aşırı yükleme grubu, başka bir aşırı yükleme grubunun alt kümesiyse ve alt küme yalnızca
RequiredArgument'ünfalseolduğu bağımsız değişkenleri içeriyorsa, bu aşırı yükleme grubu geçerlidir.Aşırı yükleme grupları çakışabilir, ancak grupların kesişimi, aşırı yükleme gruplarından birini veya her ikisini tüm gerekli bağımsız değişkenleriyle içerdiğinde bu bir hatadır. Önceki örnekte
G2veG3aşırı yükleme grupları çakıştı, ancak kesişim gruplardan birinin veya her ikisinin tüm bağımsız değişkenlerini içermediğinden bu geçerliydi.
Bir aşırı yükleme grubundaki bağımsız değişkenleri bağlarken:
- Tüm
RequiredArgumentbağımsız değişkenler bağlıysa, aşırı yükleme grubu bağlı kabul edilir. - Bir grupta sıfır
RequiredArgumentbağımsız değişken ve en az bir bağımsız değişken bağlıysa, grup bağlı olarak kabul edilir. - Hiçbir aşırı yükleme grubu bağlı değilse ve bir aşırı yükleme grubunda
RequiredArgumentbağımsız değişken yoksa, bu bir doğrulama hatasıdır. - Birden fazla aşırı yükleme grubuna bağlı olması, yani bir aşırı yükleme grubundaki tüm gerekli bağımsız değişkenlerin bağlı olması ve başka bir aşırı yükleme grubundaki bağımsız değişkenlerin de bağlı olması bir hatadır.