FeatureAttribute Class
Indicates that a class belongs to a named feature.
Namespace: Microsoft.Modeling
Assembly: Microsoft.Xrt.Runtime (in Microsoft.Xrt.Runtime.dll)
Usage
'Usage
Syntax
'Declaration
[AttributeUsageAttribute(AttributeTargets.Class, AllowMultiple=false, Inherited=false)]
public sealed class FeatureAttribute : Attribute
Example
The following code illustrates the use of the FeatureAttribute. The first block is Cord code, the second is the model program.
/// Contains actions of the model, bounds, and switches.
config Actions
{
switch KeepOutputParametersUnexpanded = false;
switch StepBound = 128;
switch PathDepthBound = 128;
action static void Implementation.SwitchRunning();
action static void Implementation.SwitchMode();
switch testclassbase = "vs";
}
/// Constructs a machine from the model program.
/// Since the model is not finite, this machine explodes
/// and exploration is stopped by a bound.
machine BasicCalculator() : Actions
{
construct model program
where scope = "CalculatorModel",
features = "RunningMode"
}
/// Defines a scenario for slicing.
machine ScientificCalculator(): Actions
{
construct model program
where scope = "CalculatorModel",
features = "RunningMode, ScientificMode"
}
namespace CalculatorModel
{
/// <summary>
/// An example model program.
/// </summary>
[Feature("RunningMode")]
public static class RunningMode
{
// State variable
public static bool running;
// Actions
[Rule(Action = "SwitchRunning()")]
public static void SwitchRunning()
{
running = !running;
}
}
[Feature("ScientificMode")]
public static class ScientificMode
{
static bool scientific;
[Rule(Action = "SwitchMode()")]
public static void SwitchMode()
{
Condition.IsTrue(RunningMode.running);
// action enabled only when running is true
scientific = !scientific;
}
}
}
Remarks
Classes defined within a model program can be labeled as belonging to named feature sets using the [Feature(name)] attribute (where name is a string value). A feature is a named grouping of related state variables and rules representing a submodel of the overall model program.
For more information about using attributes, see Extending Metadata Using Attributes.
Inheritance Hierarchy
System.Object
System.Attribute
Microsoft.Modeling.FeatureAttribute
Thread Safety
Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.
Platforms
Development Platforms
Microsoft Windows 7, Microsoft Windows Vista, Microsoft Windows XP SP2 or later, Microsoft Windows Server 2008, Microsoft Windows Server 2003
Change History
See Also
Reference
FeatureAttribute Members
Microsoft.Modeling Namespace