SharePointCommunity
Die deutschsprachige Community für SharePoint, Microsoft 365, Teams, Yammer und mit Azure

Sponsored by

Willkommen im Forum Archiv.
Einträge sind hier nicht mehr möglich, aber der Bestand von 12 Jahren SharePoint-Wissen ist hier recherchierbar.




Problem: EventHandler in C# zur Laufzeit an eine Liste binden - Typ nicht gefunden

Geprüfte Antwort Dieser Beitrag hat 4 Antworten

Ohne Rang
508 Beiträge
Tom Scheuermann erstellt 21 Mai 2012 14:44
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Hi Developers,

folgendes Phänomen:

Ich erstelle ein SharePoint Projekt mit VisualStudio 2010, enthalten ist
- eine Anwendungsseite
- eine Klasse mit einem Eventhandler (keine Elements.xml !!! - nur die Klasse)

Nun möchte ich die mit SPList.EventHandlers.Add den EventHandler zur Laufzeit dynamisch binden.

Das Problem beim Debuggen (F5):
Ich erhalte eine Fehlermeldung, das der Typ "NAME DER KLASSE" in der Assembly nicht gefunden wird.

Irgendeine Idee ?

Alle Antworten

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 21 Mai 2012 14:53
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Ist die Klasse public und von SPItemEventReceiver abgeleitet? Hast Du den Namespace korrekt mit angegeben? Stimmt der Four-Part-Assemblyname? Groß-/Kleinschreibung?

Viele Grüße
Andi
af @ evocom de
Blog
Ohne Rang
508 Beiträge
Tom Scheuermann Als Antwort am 21 Mai 2012 15:08
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Hi Andi -> logisch (bis es dann halt doch nicht stimmt) ....

Waren wohl ein wenig dürftige Infos, deshalb:

namespace
Demo.SharePoint.Templates
{
  public class MyEventReceiver : SPItemEventReceiver
 
{
    public override void ItemAdding(SPItemEventProperties properties)
    {
      base.ItemAdding(properties);

 

......

SPEventReceiverDefinition newReceiver = list.EventReceivers.Add();
newReceiver.Class =
"DEMO.SharePoint.Template.MyEventReceiver";
newReceiver.Assembly = System.Reflection.Assembly.GetExecutingAssembly().FullName;
newReceiver.SequenceNumber = 5000;
newReceiver.Type =
SPEventReceiverType.ItemAdding;
newReceiver.Update();

Dieser Code wird im BtnSave_Click() einer Application-Page abgearbeitet. Die Application-Page wurde mit der zugehörigen VisualStudio 2010 Vorlage dem SP-Projekt hinzugefügt.

Beim ausführen erhalte ich folgende Fehlermeldung:
"Der Typ "DEMO.SharePoint.Template.MyEventReceiver" in der Assembly "DEMO.SharePoint.Templates, Version=1.0.0.0, Culture=neutral, PublicKeyToken=2cbe75773492efdc" konnte nicht geladen werden."

Die Solution wurde korrekt deployed (GAC-Deployment), die DLL ist zur Laufzeit im GAC registriert (siehe C:\Windows\Assembly). Die Eigenschaft "Webserver zurücksetzen" des Lösungspakets steht auf "True".

Mehr fällt mir nicht mehr ein, hoffe das Andi oder die Community mir weiterhelfen kann ....

Greets

Tom

ts (-at-) computer-kreativ.de

Microsoft Certified IT Professional: SharePoint 2010 Administration
Microsoft Certified Technoligie Specialist: SharePoint 2010 Configuring

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 21 Mai 2012 15:41
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Und ich hatte doch Recht ;-)

[quote user="Tom Scheuermann"]namespace Demo.SharePoint.Templates[/quote]

[quote user="Tom Scheuermann"]newReceiver.Class = "DEMO.SharePoint.Template.MyEventReceiver";[/quote]

Da fehlt ein s bei Template - oder im Namespace der Klasse ist eines zuviel.

Viele Grüße
Andi
af @ evocom de
Blog
Ohne Rang
508 Beiträge
Tom Scheuermann Als Antwort am 21 Mai 2012 17:19
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Ouuhhh Mann ! 4 Stunden Fehlersuche und Recherche - und dann sowas. Peinlich !

Danke Andi !

Aber zumindest haben wir jetzt auch mal in der Community dokumentiert, wie's geht (und wie nicht).

Greets

Tom

ts (-at-) computer-kreativ.de

Microsoft Certified IT Professional: SharePoint 2010 Administration
Microsoft Certified Technoligie Specialist: SharePoint 2010 Configuring