Разработка MMC в c # - PullRequest
       5

Разработка MMC в c #

1 голос
/ 06 сентября 2011

Привет, я разрабатываю MMC snap в C #,

в этом я хочу прочитать XML-файл, так, где поместить мой XML-файл.

код не дает никакой ошибки сборки, но когда я добавляю оснастку в MMC, она дает ошибку, что делать.

[SnapInSettings("{2078B103-76FF-46E1-95BB-8B2CE3A72E60}", 
     DisplayName = "Configuration", 
     Description = "abc Pvt Ltd.")
    ]
    public class Mymmc : SnapIn
    {
        XDocument xDoc;
        public Sararmmc()
        {
            ScopeNode childscopenode;
            xDoc = XDocument.Load("MMCSnapinXML.xml");
            IEnumerable<XElement> xelements = xDoc.Root.Descendants();
            this.RootNode = new ScopeNode();
            this.RootNode.DisplayName = xDoc.Root.Attribute("name").Value;
            foreach (XElement elm in xelements)
            {
                childscopenode = new ScopeNode();
                childscopenode.DisplayName = elm.Attribute("name").Value;
                this.RootNode.Children.Add(childscopenode);
            }

        }

    }

я получаю Исключение было брошено целью вызова.

Server stack trace: 
   at System.RuntimeTypeHandle.CreateInstance(RuntimeType type, Boolean publicOnly, Boolean noCheck, Boolean& canBeCached, RuntimeMethodHandle& ctor, Boolean& bNeedSecurityCheck)
   at System.RuntimeType.CreateInstanceSlow(Boolean publicOnly, Boolean fillCache)
   at System.RuntimeType.CreateInstanceImpl(Boolean publicOnly, Boolean skipVisibilityChecks, Boolean fillCache)
   at System.Activator.CreateInstance(Type type, Boolean nonPublic)
   at System.RuntimeType.CreateInstanceImpl(BindingFlags bindingAttr, Binder binder, Object[] args, CultureInfo culture, Object[] activationAttributes)
   at System.Activator.CreateInstance(Type type, BindingFlags bindingAttr, Binder binder, Object[] args, CultureInfo culture, Object[] activationAttributes)
   at System.Activator.CreateInstance(String assemblyName, String typeName, Boolean ignoreCase, BindingFlags bindingAttr, Binder binder, Object[] args, CultureInfo culture, Object[] activationAttributes, Evidence securityInfo, StackCrawlMark& stackMark)
   at System.Activator.CreateInstance(String assemblyName, String typeName)
   at System.AppDomain.CreateInstance(String assemblyName, String typeName)
   at System.AppDomain.CreateInstanceAndUnwrap(String assemblyName, String typeName)
   at Microsoft.ManagementConsole.Internal.SnapInClient.CreateSnapIn(String assemblyName, String typeName)
   at Microsoft.ManagementConsole.Internal.ClassLibraryServices.Microsoft.ManagementConsole.Internal.IClassLibraryServices.CreateSnapIn(String assemblyName, String typeName)
   at System.Runtime.Remoting.Messaging.StackBuilderSink._PrivateProcessMessage(IntPtr md, Object[] args, Object server, Int32 methodPtr, Boolean fExecuteInContext, Object[]& outArgs)
   at System.Runtime.Remoting.Messaging.StackBuilderSink.PrivateProcessMessage(RuntimeMethodHandle md, Object[] args, Object server, Int32 methodPtr, Boolean fExecuteInContext, Object[]& outArgs)
   at System.Runtime.Remoting.Messaging.StackBuilderSink.SyncProcessMessage(IMessage msg, Int32 methodPtr, Boolean fExecuteInContext)

Exception rethrown at [0]: 
   at Microsoft.ManagementConsole.Executive.SnapInInitializationOperation.OnStart()
   at Microsoft.ManagementConsole.Executive.Operation.Start()
   at Microsoft.ManagementConsole.Executive.RunningOperationsTable.EnqueueOperation(Operation operation)
   at Microsoft.ManagementConsole.Executive.StandAloneComponentData..ctor(SnapInRegistrationInfo info, Int32 bookkeepingId)
   at Microsoft.ManagementConsole.Advanced.FrameworkSnapInFactory.Microsoft.ManagementConsole.Advanced.ISnapInFactory.CreateSnapIn(Int32 bookkeepingId, String snapInKey, Object& snapIn)

1 Ответ

1 голос
/ 06 сентября 2011

Есть много исключений, которые могут быть сгенерированы в вашем конструкторе (трассировка стека указывает, что это является источником ошибки).Это может быть неправильно сформированное исключение XML, созданное в XDocument.Load, это также может быть исключение нулевой ссылки, если какой-либо из названных узлов / атрибутов, к которым вы обращаетесь, не существует.Это может быть исключение файла, не найденное, или даже исключение SecurityException - это может быть что-то более неясное, например, MMC, требующий подписи вашей сборки ... не зная, какой тип исключения вы получаете, очень сложно кому-то помочь!

Как я уже сказал в своем комментарии, когда вы получаете ошибки во время выполнения, которые вы не можете легко объяснить - это когда подробное ведение журнала в вашем приложении становится действительно ценным!NLog и log4net - две наиболее популярные среды ведения журналов для приложений .NET

...