Warum könnte die Abhängigkeitsinjektion des "IserviceProvider" auf einer DNN -Website und wie beheben?C#

Ein Treffpunkt für C#-Programmierer
Anonymous
 Warum könnte die Abhängigkeitsinjektion des "IserviceProvider" auf einer DNN -Website und wie beheben?

Post by Anonymous »

Ich habe eine Website mit DNN V 9.10.2. Vor einiger Zeit erbt ein benutzerdefinierter Sitemap -Anbieter, der DNN von DOTNETNUKE.Services.Sitemap.Sitemapprovider Klasse erbt. Für eine Krückenlogik müssen wir ein IserviceProvider -Objekt verwenden, um die erforderlichen Typen zu beheben. Und zuerst funktionierte es, aber irgendwann hörte es auf zu arbeiten und machte eine Ausnahme mit der Nachricht "kein parameterloser Konstruktor für dieses Objekt". Diese Abhängigkeitsinjektion scheint also etwas zu sein. Das ist also definitiv eine Grundursache für diese Ausnahme. Aber ich brauche immer noch eine Möglichkeit, eine Schnittstelle aus der externen Bibliothek zu beheben, und ich weiß gerade, dass ich IServiceProvider .
Ich dachte, dass wahrscheinlich eine veraltete Version dieses Problem verursachen könnte. Da es auf unserer Website jedoch keine Aktualisierungen von DNN gab, sollte dies nicht passieren. Außerdem habe ich auf dieses Github -Problem gestoßen und der Autor hat die neueste DNN -Version verwendet, so dass dies in diesem Fall nicht das Problem ist. Ich habe es noch nicht getestet (es braucht anständig, also habe ich beschlossen, zuerst die Frage zu stellen). /> update:
Mein Ziel ist es, eine tosic.sxc.apps.IApp Instanz von einem tosic.sxc.services.idynamiccodeservice zu erhalten. Der Grund, warum ich iServiceProvider brauche, besteht darin, eine Idynamiccodeservice -Instanz zu erhalten. Also habe ich versucht, eine Problemumgehung zu erstellen und eine Singleton -Klasse zu schreiben, die die PortalModulebase von DNN erbt und geschützte Eigenschaften DeponcyProvider verwendet, um auf IserviceProvider zuzugreifen. Es funktionierte jedoch nicht, weil das Aufrufen von idynamicCodeService.app begann, eine Ausnahme mit Nachricht zu werfen, kann kein entsorgendes Objekt verwendet. Das hat auch nicht funktioniert ... < /p>
Außerdem habe ich versucht, sowohl den Code als auch die Datenbank in den Staat zu rollen, in dem es in diesem Exect Commit war, in dem er noch funktioniert hat, aber das hat nicht geholfen, und es schlägt immer noch mit demselben Fehler versagt. Daher verstehe ich, dass in solchen Situationen alte Versionen möglicherweise in Unverträglichkeiten mit etwas verursachen. Aber im Moment sehe ich keine Änderungen, die dieses Problem möglicherweise verursacht haben, denn wenn dies der Fall wäre, würde es zumindest mit der alten Version der Datenbank und dem Code funktionieren. 'DotNetnuke.abstractions.Application.IApplicationStatusinfo' wurde registriert. Chatgpt sagt, dass es mit Änderungen zusammenhängt, die mit der DI -Implementierung in DNN zu tun haben (nicht sicher, ob es wahr ist). Aber ich habe keine Erwähnungen über die IAPPLICATIONSTATUSINFO in der Code in einer Datei gefunden. Es ist also etwas in einer Bibliothek.
Für DNN habe ich versucht, Version 9.13.9 zu verwenden.

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post