Variable.ReadOnly 属性  
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
获取或设置一个布尔值,该值指示变量是只读的,并且不能修改其值。
public:
 property bool ReadOnly { bool get(); void set(bool value); };[Microsoft.SqlServer.Dts.Runtime.Localization.LocalizablePropertyDescription(typeof(Microsoft.SqlServer.Dts.Runtime.Localized), "ReadOnlyDesc")]
public bool ReadOnly { get; set; }[<Microsoft.SqlServer.Dts.Runtime.Localization.LocalizablePropertyDescription(typeof(Microsoft.SqlServer.Dts.Runtime.Localized), "ReadOnlyDesc")>]
member this.ReadOnly : bool with get, setPublic Property ReadOnly As Boolean属性值
一个布尔值,指示变量的只读状态。 true 值指示变量为只读。 false 值指示变量是可读/写的。
- 属性
示例
以下示例创建包、添加变量 ForEachLoop并将变量添加到 Variables 集合中 ForEachLoop。 然后,它检索并设置变量的属性,并显示它们以供查看,包括 ReadOnly。
static void Main(string[] args)  
        {  
            Package p = new Package();  
            // Add a sequence to the package executables collection  
            Sequence seq = (Sequence)p.Executables.Add("STOCK:SEQUENCE");  
            // Add a ForEachLoop to the Sequence  
            ForEachLoop feLoop = (ForEachLoop)seq.Executables.Add("STOCK:FOREACHLOOP");  
            // Add a variable, v, to the variable collection  
           // of the ForEach loop.  
            Variable v = feLoop.Variables.Add("v", false, "global", 100);  
//  Get and set different variable properties  
            // Creation Name (read-only)  
            String createName = v.CreationName;  
            // Description (read/write)  
            v.Description = "my new v Description";  
            String vDesc = v.Description;  
            // ID (read-only)  
            String vID = v.ID;  
            // Name (read/write)  
            String oldName = v.Name;  
            v.Name = "my_new_V_name";  
            String newName = v.Name;  
            // Namespace (read/write)  
            String oldNamespace = v.Namespace;  
            v.Namespace = "my_new_v_Namespace";  
            String newNamespace = v.Namespace;  
            // Properties (read-only)  
            int pmCount = v.Properties.Count;  
            // Qualified Name (read-only)  
            String QName = v.QualifiedName;  
            // RaiseChangedEvent (read/write)  
            Boolean oldraiseChEvt = v.RaiseChangedEvent;  
            v.RaiseChangedEvent = true;  
            Boolean raiseChangedEvent = v.RaiseChangedEvent;  
            // Read-only (read/write)  
            Boolean vReadOnly = v.ReadOnly;  
            v.ReadOnly = true;  
            Boolean newVReadOnly = v.ReadOnly;  
            // System Variable (read-only)  
            Boolean sysVar = v.SystemVariable;  
            // Type (read-only)  
            TypeCode type = v.DataType;  
            // Value (read/write)  
            Object vValue = v.Value;  
            Console.WriteLine("The variable properties are: ");  
            Console.WriteLine("Creation Name   = {0}", createName);  
            Console.WriteLine("Description        = {0}", vDesc);  
            Console.WriteLine("ID                     = {0}", vID);  
            Console.WriteLine("Old name, new name = {0}, {1}", oldName, newName);  
            Console.WriteLine("Old namespace, new namespace = {0}, {1}", oldNamespace, newNamespace);  
            Console.WriteLine("Properties count   = {0}", pmCount);  
            Console.WriteLine("Qualified Name     = {0}", QName);  
            Console.WriteLine("old RaiseEvent, new RaiseEvent = {0}, {1}", oldraiseChEvt, raiseChangedEvent);  
            Console.WriteLine("old read-only, new read-only = {0}, {1}", vReadOnly, newVReadOnly);  
            Console.WriteLine("System Variable    = {0}", sysVar);  
            Console.WriteLine("Type               = {0}", type);  
        }  
Shared Sub Main(ByVal args() As String)   
    Dim p As New Package()  
    ' Add a sequence to the package executables collection  
    Dim seq As Sequence = CType(p.Executables.Add("STOCK:SEQUENCE"), Sequence)  
    ' Add a ForEachLoop to the Sequence  
    Dim feLoop As ForEachLoop = CType(seq.Executables.Add("STOCK:FOREACHLOOP"), ForEachLoop)  
    ' Add a variable, v, to the variable collection  
    ' of the ForEach loop.  
    Dim v As Variable = feLoop.Variables.Add("v", False, "global", 100)  
    '  Get and set different variable properties  
    ' Creation Name (read-only)  
    Dim createName As String = v.CreationName  
    ' Description (read/write)  
    v.Description = "my new v Description"  
    Dim vDesc As String = v.Description  
    ' ID (read-only)  
    Dim vID As String = v.ID  
    ' Name (read/write)  
    Dim oldName As String = v.Name  
    v.Name = "my_new_V_name"  
    Dim newName As String = v.Name  
    ' Namespace (read/write)  
    Dim oldNamespace As String = v.Namespace  
    v.Namespace = "my_new_v_Namespace"  
    Dim newNamespace As String = v.Namespace  
    ' Properties (read-only)  
    Dim pmCount As Integer = v.Properties.Count  
    ' Qualified Name (read-only)  
    Dim QName As String = v.QualifiedName  
    ' RaiseChangedEvent (read/write)  
    Dim oldraiseChEvt As [Boolean] = v.RaiseChangedEvent  
    v.RaiseChangedEvent = True  
    Dim raiseChangedEvent As [Boolean] = v.RaiseChangedEvent  
    ' Read-only (read/write)  
    Dim vReadOnly As [Boolean] = v.ReadOnly  
    v.ReadOnly = True  
    Dim newVReadOnly As [Boolean] = v.ReadOnly  
    ' System Variable (read-only)  
    Dim sysVar As [Boolean] = v.SystemVariable  
    ' Type (read-only)  
    Dim type As TypeCode = v.DataType  
    ' Value (read/write)  
    Dim vValue As [Object] = v.Value  
    Console.WriteLine("The variable properties are: ")  
    Console.WriteLine("Creation Name   = {0}", createName)  
    Console.WriteLine("Description        = {0}", vDesc)  
    Console.WriteLine("ID                     = {0}", vID)  
    Console.WriteLine("Old name, new name = {0}, {1}", oldName, newName)  
    Console.WriteLine("Old namespace, new namespace = {0}, {1}", oldNamespace, newNamespace)  
    Console.WriteLine("Properties count   = {0}", pmCount)  
    Console.WriteLine("Qualified Name     = {0}", QName)  
    Console.WriteLine("old RaiseEvent, new RaiseEvent = {0}, {1}", oldraiseChEvt, raiseChangedEvent)  
    Console.WriteLine("old read-only, new read-only = {0}, {1}", vReadOnly, newVReadOnly)  
    Console.WriteLine("System Variable    = {0}", sysVar)  
    Console.WriteLine("Type               = {0}", type)  
End Sub   
示例输出:
变量属性为:
创建名称 =
说明 = 我的新 v 说明
ID = {622CF328-55D7-4E81-9385-9C1F8450511E}
旧名称,新名称 = v,my_new_V_name
旧命名空间,新命名空间 = 全局命名空间,my_new_v_Namespace
属性计数 = 12
限定名称 = my_new_v_Namespace::my_new_V_name
old RaiseEvent,new RaiseEvent = False,True
旧只读,新只读 = False,True
系统变量 = False
Type = Int32