cannot explicitly call operator or accessor_

Locked cannot explicitly call operator or accessor_

  • Sunday, April 08, 2012 5:38 AM
     
      Has Code

    Hi Guys,

    I am trying to create a connector for SCOM using c#. But I am getting the following error. Can any one help me in solving this.

    Thanks in advance

    using Microsoft.EnterpriseManagement;
    using Microsoft.EnterpriseManagement.Common;
    using Microsoft.EnterpriseManagement.Configuration;
    using Microsoft.EnterpriseManagement.ConnectorFramework;
    using Microsoft.VisualBasic;
    using Microsoft.VisualBasic.CompilerServices;
    using System;
    using System.Collections.Generic;
    using System.Collections.ObjectModel;
    using System.Diagnostics;
    using System.IO;
    using System.Threading;
    namespace ConsoleApplication1
    {
        [StandardModule]
        internal sealed class ConnectorModule
        {
            private static string[,] XlateDictionary = new string[3, 2];
            private static string[,] EscDictionary = new string[5, 2];
            private static int XlateSize;
            private static int EscSize;
            [System.STAThread]
            public static void main(string[] args)
            {
                checked
                {
                    ManagementGroup managementGroup = new ManagementGroup("localhost");
                    ConnectorFrameworkAdministration connectorFrameworkAdministration = managementGroup.GetConnectorFrameworkAdministration();
                    System.Guid guid = new System.Guid("{6A1F8C0E-B8F1-4147-8C9B-5A2F98F10003}");
                    int num = 0;
                    try
                    {
                        MonitoringConnector monitoringConnector;
                        if (args.Length == 1)
                        {
                            if (Operators.CompareString(args[0], "InstallConnector", false) == 0)
                            {
                                monitoringConnector = connectorFrameworkAdministration.Setup(new ConnectorInfo
                                {
                                    Description = "Test Enterprise Monitoring Connector",
                                    DisplayName = "Enterprise Monitoring Connector",
                                    Name = "Enterprise Monitoring Connector"
                                }, guid);
                                monitoringConnector.Initialize();
                            }
                            if (Operators.CompareString(args[0], "UninstallConnector", false) == 0)
                            {
                                monitoringConnector = connectorFrameworkAdministration.GetMonitoringConnector(guid);
                                System.Collections.ObjectModel.ReadOnlyCollection<MonitoringConnectorSubscription> connectorSubscriptions = connectorFrameworkAdministration.GetConnectorSubscriptions();
                                try
                                {
                                    System.Collections.Generic.IEnumerator<MonitoringConnectorSubscription> enumerator = connectorSubscriptions.GetEnumerator();
                                    while (enumerator.MoveNext())
                                    {
                                        MonitoringConnectorSubscription current = enumerator.Current;
                                        if (current.get_MonitoringConnectorId() == guid)
                                        {
                                            connectorFrameworkAdministration.DeleteConnectorSubscription(current);
                                        }
                                    }
                                }
                                finally
                                {
                                    System.Collections.Generic.IEnumerator<MonitoringConnectorSubscription> enumerator;
                                    if (enumerator != null)
                                    {
                                        enumerator.Dispose();
                                    }
                                }
                                monitoringConnector.Uninitialize();
                                connectorFrameworkAdministration.Cleanup(monitoringConnector);
                            }
                            System.Console.WriteLine("Install Directive Complete");
                        }
                        monitoringConnector = connectorFrameworkAdministration.GetMonitoringConnector(guid);
                        if (!EventLog.SourceExists("Alerting Connector"))
                        {
                            EventLog.CreateEventSource("Alerting Connector", "Alerting Connector");
                        }
                        EventLog eventLog = new EventLog("Alerting Connector", ".", "Alerting Connector");
                        System.Console.WriteLine("Setting up...");
                        eventLog.WriteEntry("Starting the Connector", EventLogEntryType.Information, 100);
                        ConnectorModule.DictionaryUpdate();
                        System.DateTime lastWriteTime = System.IO.File.GetLastWriteTime("D:\\myconnector\\XlateDict.txt");
                        System.Console.WriteLine("Dictionary Loaded");
                        eventLog.WriteEntry("Dictionary Loaded: Translate", EventLogEntryType.Information, 200);
                        ConnectorModule.SpecialEscalationDictionaryUpdate();
                        System.DateTime lastWriteTime2 = System.IO.File.GetLastWriteTime("D:\\myconnector\\EscDict.txt");
                        System.Console.WriteLine("Escalation Dictionary Loaded");
                        eventLog.WriteEntry("Dictionary Loaded: Escalation", EventLogEntryType.Information, 200);
                        System.Console.WriteLine("---------------------------------------------");
                        while (true)
                        {
                            System.Collections.ObjectModel.ReadOnlyCollection<ConnectorMonitoringAlert> readOnlyCollection = monitoringConnector.GetMonitoringAlerts();
                            System.Console.WriteLine("...Handling " + Conversions.ToString(readOnlyCollection.Count) + " alerts");
                            if (readOnlyCollection.Count > 0)
                            {
                                System.Console.WriteLine("Processing Queued Alerts...");
                                try
                                {
                                    System.Collections.Generic.IEnumerator<ConnectorMonitoringAlert> enumerator2 = readOnlyCollection.GetEnumerator();
                                    while (enumerator2.MoveNext())
                                    {
                                        ConnectorMonitoringAlert current2 = enumerator2.Current;
                                        string text = "NoID";
                                        string text2 = "No Comment";
                                        string text3 = "0";
                                        string text4 = "1";
                                        string text5 = "Error";
                                        string text6 = "No Instance";
                                        string text7 = "No Object Class";
                                        string text8 = "NoComputerName";
                                        string text9 = "NoFullPath";
                                        string description = "No Alert Details";
                                        string text10 = Conversions.ToString(0);
                                        try
                                        {
                                            text = current2.get_Id().ToString();
                                            text2 = current2.get_Name().ToString();
                                            text3 = Conversions.ToString(current2.get_ResolutionState());
                                            text4 = current2.get_Severity().ToString();
                                            text5 = current2.get_Priority().ToString();
                                            text6 = current2.get_MonitoringObjectDisplayName();
                                            MonitoringClass monitoringClass = managementGroup.GetMonitoringClass(current2.get_MonitoringClassId());
                                            text7 = monitoringClass.get_DisplayName().ToString();
                                            text8 = current2.get_NetbiosComputerName().ToString();
                                            text9 = current2.get_MonitoringObjectFullName().ToString();
                                            description = current2.get_Description().ToString();
                                            text10 = Conversions.ToString(current2.get_RepeatCount());
                                        }
                                        catch (System.Exception expr_311)
                                        {
                                            ProjectData.SetProjectError(expr_311);
                                            eventLog.WriteEntry(text + " Caused Null Pointer Exception", EventLogEntryType.Error, 506);
                                            ProjectData.ClearProjectError();
                                        }
                                        if (Operators.CompareString(text8, "NoComputerName", false) == 0)
                                        {
                                            text8 = text9;
                                        }
                                        System.Console.WriteLine("Alert ID:         " + text);
                                        System.Console.WriteLine("Computer Name:    " + text8);
                                        System.Console.WriteLine("Alert Name:       " + text2);
                                        System.Console.WriteLine("Resolution State: " + text3);
                                        System.Console.WriteLine("Severity:         " + text4);
                                        System.Console.WriteLine("Priority:         " + text5);
                                        System.Console.WriteLine("ObjectDispName:   " + text6);
                                        System.Console.WriteLine("ClassName:        " + text7);
                                        string text11 = ConnectorModule.DictionaryLookup(text7);
                                        if (Operators.CompareString(Strings.Trim(Strings.UCase(text11)), Strings.Trim(Strings.UCase(text7)), false) != 0)
                                        {
                                            current2.Update("Connector updated the class name to " + text11);
                                        }
                                        string text12 = ConnectorModule.EscalationLookup(text8, text11, text6);
                                        if (Operators.CompareString(Strings.UCase(text12), Strings.UCase(text11), false) != 0)
                                        {
                                            current2.Update("Connector found a special class name.  Updating to " + text12);
                                        }
                                        System.Console.WriteLine("Object Class:     " + text12);
                                        System.Console.WriteLine("Class Instance:   " + text6);
                                        System.Console.WriteLine("Repeat Count:     " + text10);
                                        if (Operators.CompareString(text12, "Health Service Watcher", false) == 0)
                                        {
                                            text8 = text6;
                                            text6 = "System";
                                        }
                                        ConnectorModule.TrapSend(text, text3, text4, text5, text8, text2, description, text12, text6, text10);
                                        current2.Update("Alert has been forwarded to the enterprise management connector for processing.");
                                    }
                                }
                                finally
                                {
                                    System.Collections.Generic.IEnumerator<ConnectorMonitoringAlert> enumerator2;
                                    if (enumerator2 != null)
                                    {
                                        enumerator2.Dispose();
                                    }
                                }
                                monitoringConnector.AcknowledgeMonitoringAlerts(readOnlyCollection);
                            }
                            readOnlyCollection = null;
                            System.Threading.Thread.Sleep(15000);
                            if (System.DateTime.Compare(lastWriteTime, System.IO.File.GetLastWriteTime("D:\\myconnector\\XlateDict.txt")) != 0)
                            {
                                System.Console.WriteLine("!Translation Dictionary cache is out of date!");
                                eventLog.WriteEntry("Translate Dictionary is out of date! Reloading.", EventLogEntryType.Information, 205);
                                ConnectorModule.DictionaryUpdate();
                                lastWriteTime = System.IO.File.GetLastWriteTime("D:\\myconnector\\XlateDict.txt");
                            }
                            if (System.DateTime.Compare(lastWriteTime2, System.IO.File.GetLastWriteTime("D:\\myconnector\\EscDict.txt")) != 0)
                            {
                                System.Console.WriteLine("!Escalation Dictionary cache is out of date!");
                                eventLog.WriteEntry("Escalate Dictionary is out of date! Reloading.", EventLogEntryType.Information, 205);
                                ConnectorModule.SpecialEscalationDictionaryUpdate();
                                lastWriteTime2 = System.IO.File.GetLastWriteTime("D:\\myconnector\\EscDict.txt");
                            }
                            System.Threading.Thread.Sleep(15000);
                            if (num > 20)
                            {
                                eventLog.WriteEntry("Periodic Heartbeat to verify connector is running", EventLogEntryType.Information, 50);
                                num = 0;
                            }
                            num++;
                        }
                    }
                    catch (MonitoringException expr_593)
                    {
                        ProjectData.SetProjectError(expr_593);
                        MonitoringException ex = expr_593;
                        System.Console.WriteLine(ex.Message);
                        ProjectData.ClearProjectError();
                    }
                }
            }
            public static void DictionaryUpdate()
            {
                checked
                {
                    string[] array = new string[3];
                    ConnectorModule.XlateDictionary = new string[3, 2];
                    int num = 0;
                    System.Console.Write("Updating Dictionary.");
                    System.IO.StreamReader streamReader = new System.IO.StreamReader("D:\\myconnector\\XlateDict.Txt");
                    while (!streamReader.EndOfStream)
                    {
                        string text = streamReader.ReadLine();
                        System.Console.Write(".");
                        if (Operators.CompareString(Strings.Left(text, 1), "#", false) != 0)
                        {
                            array = Strings.Split(text, ",", 2, CompareMethod.Text);
                            ConnectorModule.XlateDictionary[0, num] = array[0];
                            ConnectorModule.XlateDictionary[1, num] = array[1];
                            num++;
                            ConnectorModule.XlateDictionary = (string[,])Utils.CopyArray((System.Array)ConnectorModule.XlateDictionary, new string[3, num + 1 + 1]);
                        }
                    }
                    System.Console.WriteLine(".Done! Read " + num.ToString() + " records.");
                    streamReader.Close();
                }
            }
            public static void SpecialEscalationDictionaryUpdate()
            {
                checked
                {
                    string[] array = new string[5];
                    ConnectorModule.EscDictionary = new string[5, 2];
                    int num = 0;
                    System.Console.Write("Updating Escalation Table.");
                    System.IO.StreamReader streamReader = new System.IO.StreamReader("D:\\myconnector\\EscDict.Txt");
                    while (!streamReader.EndOfStream)
                    {
                        string text = streamReader.ReadLine();
                        System.Console.Write(".");
                        if (Operators.CompareString(Strings.Left(text, 1), "#", false) != 0)
                        {
                            array = Strings.Split(text, ",", 4, CompareMethod.Text);
                            int num2 = 0;
                            do
                            {
                                ConnectorModule.EscDictionary[num2, num] = array[num2];
                                num2++;
                            }
                            while (num2 <= 3);
                            num++;
                            ConnectorModule.EscDictionary = (string[,])Utils.CopyArray((System.Array)ConnectorModule.EscDictionary, new string[5, num + 1 + 1]);
                        }
                    }
                    System.Console.WriteLine(".Done! Read " + num.ToString() + " records.");
                    streamReader.Close();
                }
            }
            public static string DictionaryLookup(string InputClassName)
            {
                checked
                {
                    string result = InputClassName;
                    int arg_0F_0 = 0;
                    int num = Information.UBound(ConnectorModule.XlateDictionary, 2);
                    for (int i = arg_0F_0; i <= num; i++)
                    {
                        if (Operators.CompareString(Strings.UCase(InputClassName), Strings.UCase(ConnectorModule.XlateDictionary[0, i]), false) == 0)
                        {
                            result = ConnectorModule.XlateDictionary[1, i];
                        }
                    }
                    return result;
                }
            }
            public static string EscalationLookup(string ComputerName, string ClassName, string ClassInstance)
            {
                checked
                {
                    string result = ClassName;
                    int arg_0F_0 = 0;
                    int num = Information.UBound(ConnectorModule.EscDictionary, 2);
                    for (int i = arg_0F_0; i <= num; i++)
                    {
                        if (Operators.CompareString(Strings.UCase(ComputerName), Strings.UCase(ConnectorModule.EscDictionary[0, i]), false) == 0 & Operators.CompareString(Strings.UCase(ClassName), Strings.UCase(ConnectorModule.EscDictionary[1, i]), false) == 0 & Operators.CompareString(Strings.UCase(ClassInstance), Strings.UCase(ConnectorModule.EscDictionary[2, i]), false) == 0)
                        {
                            result = ConnectorModule.EscDictionary[3, i];
                        }
                    }
                    return result;
                }
            }
            public static bool TrapSend(string AlertID, string ResolutionState, string Severity, string Priority, string Computername, string AlertName, string Description, string ClassID, string ClassInstance, string RepeatCount)
            {
                string text = "localhost";
                string text2 = string.Concat(new string[]
    			{
    				"-d ", 
    				text, 
    				" -c fxstspublic -v .1.3.6.1.4.1.2349.2.2.2.2 STRING ", 
    				ResolutionState, 
    				" -v .1.3.6.1.4.1.2349.2.2.2.3 STRING \"", 
    				AlertName, 
    				"\" -v .1.3.6.1.4.1.2349.2.2.2.4 STRING \"", 
    				Computername, 
    				"\" -v .1.3.6.1.4.1.2349.2.2.2.5 STRING \"", 
    				ClassID, 
    				"\" -v .1.3.6.1.4.1.2349.2.2.2.6 STRING \"", 
    				ClassInstance, 
    				"\" -v .1.3.6.1.4.1.2349.2.2.2.7 STRING \"", 
    				Description, 
    				"\" -v .1.3.6.1.4.1.2349.2.2.2.8 STRING \"", 
    				Severity, 
    				"\" -v .1.3.6.1.4.1.2349.2.2.2.9 STRING \"", 
    				RepeatCount, 
    				"\" -v .1.3.6.1.4.1.2349.2.2.2.10 STRING \"", 
    				AlertID, 
    				"\""
    			});
                Process process = new Process();
                try
                {
                    process.StartInfo.FileName = "D:\\SNMPTrap\\Trapgen.exe";
                    process.StartInfo.Arguments = text2;
                    process.Start();
                    process.WaitForExit();
                    process.Dispose();
                }
                catch (System.Exception expr_F5)
                {
                    ProjectData.SetProjectError(expr_F5);
                    System.Exception value = expr_F5;
                    System.Console.WriteLine("EXCEPTION! Unable to start Trapgen to send the trap!  ");
                    System.Console.WriteLine("------------------------------------------------------");
                    System.Console.WriteLine(text2);
                    System.Console.WriteLine(value);
                    System.Console.WriteLine("------------------------------------------------------");
                    ProjectData.ClearProjectError();
                }
                text = "localhost";
                text2 = string.Concat(new string[]
    			{
    				"-d ", 
    				text, 
    				" -c fxstspublic -v .1.3.6.1.4.1.2349.2.2.2.2 STRING ", 
    				ResolutionState, 
    				" -v .1.3.6.1.4.1.2349.2.2.2.3 STRING \"", 
    				AlertName, 
    				"\" -v .1.3.6.1.4.1.2349.2.2.2.4 STRING \"", 
    				Computername, 
    				"\" -v .1.3.6.1.4.1.2349.2.2.2.5 STRING \"", 
    				ClassID, 
    				"\" -v .1.3.6.1.4.1.2349.2.2.2.6 STRING \"", 
    				ClassInstance, 
    				"\" -v .1.3.6.1.4.1.2349.2.2.2.7 STRING \"", 
    				Description, 
    				"\" -v .1.3.6.1.4.1.2349.2.2.2.8 STRING \"", 
    				Severity, 
    				"\" -v .1.3.6.1.4.1.2349.2.2.2.9 STRING \"", 
    				RepeatCount, 
    				"\" -v .1.3.6.1.4.1.2349.2.2.2.10 STRING \"", 
    				AlertID, 
    				"\""
    			});
                Process process2 = new Process();
                try
                {
                    process2.StartInfo.FileName = "D:\\SNMPTrap\\Trapgen.exe";
                    process2.StartInfo.Arguments = text2;
                    process2.Start();
                    process2.WaitForExit();
                    process2.Dispose();
                }
                catch (System.Exception expr_224)
                {
                    ProjectData.SetProjectError(expr_224);
                    System.Exception value2 = expr_224;
                    System.Console.WriteLine("EXCEPTION! Unable to start Trapgen to send the trap!  ");
                    System.Console.WriteLine("------------------------------------------------------");
                    System.Console.WriteLine(text2);
                    System.Console.WriteLine(value2);
                    System.Console.WriteLine("------------------------------------------------------");
                    ProjectData.ClearProjectError();
                }
                return true;
            }
        }
    }
    
    Error    1    'Microsoft.EnterpriseManagement.ConnectorFramework.MonitoringConnectorSubscription.MonitoringConnectorId.get': cannot explicitly call operator or accessor    C:\Documents and Settings\Administrator.INGEN\My Documents\Visual Studio 2010\Projects\ConsoleApplication1\ConsoleApplication1\Program.cs    56    49    ConsoleApplication1
    Error    2    'Microsoft.EnterpriseManagement.Monitoring.OperationalDataObject.Id.get': cannot explicitly call operator or accessor    C:\Documents and Settings\Administrator.INGEN\My Documents\Visual Studio 2010\Projects\ConsoleApplication1\ConsoleApplication1\Program.cs    118    57    ConsoleApplication1
    Error    3    'Microsoft.EnterpriseManagement.Monitoring.MonitoringAlert.Name.get': cannot explicitly call operator or accessor    C:\Documents and Settings\Administrator.INGEN\My Documents\Visual Studio 2010\Projects\ConsoleApplication1\ConsoleApplication1\Program.cs    119    58    ConsoleApplication1
    Error    4    'Microsoft.EnterpriseManagement.Monitoring.MonitoringAlert.ResolutionState.get': cannot explicitly call operator or accessor    C:\Documents and Settings\Administrator.INGEN\My Documents\Visual Studio 2010\Projects\ConsoleApplication1\ConsoleApplication1\Program.cs    120    79    ConsoleApplication1
    Error    5    'Microsoft.EnterpriseManagement.Monitoring.MonitoringAlert.Severity.get': cannot explicitly call operator or accessor    C:\Documents and Settings\Administrator.INGEN\My Documents\Visual Studio 2010\Projects\ConsoleApplication1\ConsoleApplication1\Program.cs    121    58    ConsoleApplication1
    Error    6    'Microsoft.EnterpriseManagement.Monitoring.MonitoringAlert.Priority.get': cannot explicitly call operator or accessor    C:\Documents and Settings\Administrator.INGEN\My Documents\Visual Studio 2010\Projects\ConsoleApplication1\ConsoleApplication1\Program.cs    122    58    ConsoleApplication1
    Error    7    'Microsoft.EnterpriseManagement.Monitoring.MonitoringAlert.MonitoringObjectDisplayName.get': cannot explicitly call operator or accessor    C:\Documents and Settings\Administrator.INGEN\My Documents\Visual Studio 2010\Projects\ConsoleApplication1\ConsoleApplication1\Program.cs    123    58    ConsoleApplication1
    Error    8    'Microsoft.EnterpriseManagement.Monitoring.MonitoringAlert.MonitoringClassId.get': cannot explicitly call operator or accessor    C:\Documents and Settings\Administrator.INGEN\My Documents\Visual Studio 2010\Projects\ConsoleApplication1\ConsoleApplication1\Program.cs    124    119    ConsoleApplication1
    Error    9    'Microsoft.EnterpriseManagement.Configuration.ManagementPackElement.DisplayName.get': cannot explicitly call operator or accessor    C:\Documents and Settings\Administrator.INGEN\My Documents\Visual Studio 2010\Projects\ConsoleApplication1\ConsoleApplication1\Program.cs    125    65    ConsoleApplication1
    Error    10    'Microsoft.EnterpriseManagement.Monitoring.MonitoringAlert.NetbiosComputerName.get': cannot explicitly call operator or accessor    C:\Documents and Settings\Administrator.INGEN\My Documents\Visual Studio 2010\Projects\ConsoleApplication1\ConsoleApplication1\Program.cs    126    58    ConsoleApplication1
    Error    11    'Microsoft.EnterpriseManagement.Monitoring.MonitoringAlert.MonitoringObjectFullName.get': cannot explicitly call operator or accessor    C:\Documents and Settings\Administrator.INGEN\My Documents\Visual Studio 2010\Projects\ConsoleApplication1\ConsoleApplication1\Program.cs    127    58    ConsoleApplication1
    Error    12    'Microsoft.EnterpriseManagement.Monitoring.MonitoringAlert.Description.get': cannot explicitly call operator or accessor    C:\Documents and Settings\Administrator.INGEN\My Documents\Visual Studio 2010\Projects\ConsoleApplication1\ConsoleApplication1\Program.cs    128    64    ConsoleApplication1
    Error    13    'Microsoft.EnterpriseManagement.Monitoring.MonitoringAlert.RepeatCount.get': cannot explicitly call operator or accessor    C:\Documents and Settings\Administrator.INGEN\My Documents\Visual Studio 2010\Projects\ConsoleApplication1\ConsoleApplication1\Program.cs    129    80    ConsoleApplication1

All Replies

  • Sunday, April 08, 2012 6:20 AM
    Moderator
     
     Answered Has Code

    You're accessing the properties via the property's get method, and not the property, for example, this:

    MonitoringConnectorSubscription current = enumerator.Current; if (current.get_MonitoringConnectorId() == guid)

    Should be:

    MonitoringConnectorSubscription current = enumerator.Current;

                                        if (current.MonitoringConnectorId == guid)

    Other properties are done the same way throughout your code.  If you click on each error in the Error window, Visual Studio should take you to the problematic line one by one, so you can correct the property accessor code.


    Reed Copsey, Jr. - http://reedcopsey.com
    If a post answers your question, please click "Mark As Answer" on that post and "Mark as Helpful".

  • Sunday, April 08, 2012 5:55 PM
     
     

    Thanks Reed Copsey, Jr. I changed the code and I get new error as given below,

    Error    1    Use of unassigned local variable 'enumerator'    C:\Documents and Settings\Administrator.INGEN\My Documents\Visual Studio 2010\Projects\ConsoleApplication1\ConsoleApplication1\Program.cs    65    37    ConsoleApplication1
    Error    2    Use of unassigned local variable 'enumerator2'    C:\Documents and Settings\Administrator.INGEN\My Documents\Visual Studio 2010\Projects\\ConsoleApplication1\ConsoleApplication1\Program.cs    174    37    ConsoleApplication1

    Can any one help me in solving this.

  • Sunday, April 08, 2012 6:43 PM
    Moderator
     
      Has Code
     System.Collections.Generic.IEnumerator<MonitoringConnectorSubscription> enumerator;

    You never assign a value to the variable, enumerator.  You should also see a warning message notifying you of that fact.

    Rudy   =8^D


    Mark the best replies as answers. "Fooling computers since 1971."

    http://thesharpercoder.blogspot.com/


  • Monday, April 09, 2012 1:05 AM
     
      Has Code

    There is no warning message, I can see only critical errors.

    finally
                                {
                                    System.Collections.Generic.IEnumerator<MonitoringConnectorSubscription> enumerator;
                                    if (enumerator != null)
                                    {
                                        enumerator.Dispose();
                                    }
                                }

    Where exactly I need to assign the value. Can you help me on this, Please.

    Naresh

  • Monday, April 09, 2012 3:48 PM
     
     

    Hi,

    I would suggest to use the foreach statement : http://msdn.microsoft.com/en-us/library/aa664754(VS.71).aspx

    As you'll see it handles this for you automatically. The issue you have for now is that enumerator is declared inside the try block. The one you declared inside the finally block is ANOTHER variable rather than the same. Though you would have to move the enumerator declaration outside of the try block and suppress its declaration in the finally block but as you'll see you then just get the code that is automatically generated for you when using the foreach statement.


    Please always mark whatever response solved your issue so that the thread is properly marked as "Answered".


  • Wednesday, April 11, 2012 2:13 PM
     
     

    What are those 5 lines supposed to do? The answer to that question should tell you if and where you need to instantiate it, or if you should get rid of the whole.