Freigeben über


Schritt 4: Erstellen des HeaderHelper-Projekts

In diesem Schritt erstellen Sie eine .NET-Klassenbibliothek. Wenn eine private Prozessorchestrierung eine eingehende Nachricht empfängt, bestimmt die HeaderHelper-Bibliothek, ob eine Dokumentkonvertierung erforderlich ist, und führt, falls erforderlich, diese Konvertierung durch. Auf diese Weise können Sie mit verschiedenen Versionen von Dokumenten des RosettaNet-Implementierungsframeworks (RNIF) arbeiten. Wenn außerdem eine 3A2-Antwortnachricht gesendet wird, führt die HeaderHelper-Bibliothek vor der Übertragung der Nachricht eine zusätzliche Dokumentkonvertierung durch.

So erstellen Sie das HeaderHelper-Projekt

  1. Klicken Sie in Visual Studio in Projektmappen-Explorer mit der rechten Maustaste auf die Projektmappe Contoso, zeigen Sie auf Hinzufügen, und klicken Sie dann auf Neues Projekt.

  2. Wählen Sie im Dialogfeld Neues Projekt hinzufügen im Bereich Projekttypen die Option Visual C# aus.

  3. Wählen Sie im Bereich Vorlagen die Vorlage Klassenbibliothek aus.

  4. Geben Sie im Feld Nameden Namen HeaderHelper ein, und klicken Sie dann auf OK , um das Projekt zu erstellen.

  5. Klicken Sie in Projektmappen-Explorer im Projekt HeaderHelper mit der rechten Maustaste auf die Datei Class1.cs, klicken Sie auf Umbenennen, geben Sie HeaderHelper.cs ein, und drücken Sie dann die EINGABETASTE.

So erstellen Sie die Helper-Klasse

  1. Erweitern Sie in Projektmappen-Explorer das Projekt HeaderHelper, und doppelklicken Sie dann auf den Knoten HeaderHelper.cs, um die HeaderHelper-Quelldatei zu öffnen.

  2. Geben Sie den folgenden Code in die Quelldatei ein, und überschreiben Sie den gesamten vorhandenen Code:

    using System;  
    using System.Xml;  
    
    namespace ContosoPriceAndAvailability  
    {  
        public class Helper  
        {  
            static public XmlDocument NormalizeHeader( XmlDocument curPip )  
            {  
                string strInput = curPip.OuterXml;  
                try  
                {  
                    XmlDocument xDoc = new XmlDocument();  
    
                    strInput = strInput.Replace("<!DOCTYPE Pip3A2PriceAndAvailabilityQuery SYSTEM \"3A2PriceAndAvailabilityQueryMessageGuideline_v1_3.dtd\"[]>",String.Empty);  
                    strInput = strInput.Replace("<Pip3A2PriceAndAvailabilityQuery>","<Pip3A2PriceAndAvailabilityQuery xmlns=\"http://schemas.microsoft.com/biztalk/btarn/2004/3A2PriceAndAvailabilityQueryMessageGuideline_v1_3.dtd\">");  
                    strInput = strInput.Replace("xml:",String.Empty);  
                    strInput = strInput.Replace("b:",String.Empty);  
                    strInput = strInput.Replace("lang:",String.Empty);  
                    strInput = strInput.Replace("ns1:",String.Empty);  
    
                    xDoc.LoadXml(strInput);  
    
                    return xDoc;  
                }  
                catch(Exception ex)  
                {  
                    System.Diagnostics.Debug.Write( ex.Message );  
                    throw ex;  
                }  
            }  
    
            static public string ReturnSCWithDocType( XmlDocument xmlDoc )  
            {  
                try  
                {  
                    string sResponse = xmlDoc.InnerXml;  
                    sResponse=sResponse.Replace("ns0:",String.Empty);  
                    xmlDoc.LoadXml(sResponse);  
                    xmlDoc.DocumentElement.RemoveAllAttributes();  
                    sResponse = xmlDoc.InnerXml;  
    
                    sResponse = sResponse.Insert(0,"<!DOCTYPE Pip3A2PriceAndAvailabilityResponse SYSTEM \"3A2PriceAndAvailabilityResponseMessageGuideline_v1_3.dtd\">");  
                    sResponse = sResponse.Replace("ns0:",String.Empty);  
                    sResponse = sResponse.Replace("b:",String.Empty);  
                    sResponse = sResponse.Replace("lang:",String.Empty);  
                    sResponse = sResponse.Replace("ns1:",String.Empty);  
    
                    return sResponse;  
                }  
                catch(Exception ex)  
                {  
                    throw ex;  
                }  
            }  
        }  
    }  
    
  3. Klicken Sie im Menü Datei auf Alle speichern.

So erstellen Sie eine Assembly mit starkem Namen für das HeaderHelper-Projekt

  1. Klicken Sie in Projektmappen-Explorer mit der rechten Maustaste auf das Projekt HeaderHelper, und klicken Sie dann auf Eigenschaften.

  2. Wählen Sie im Dialogfeld HeaderHelper-Eigenschaftenseiten im linken Bereich des Eigenschaftenbereichs HeaderHelp die Option Signieren aus.

  3. Klicken Sie im rechten Bereich auf Assembly signieren.

  4. Klicken Sie auf das Textfeld Schlüsseldatei mit starkem Namen auswählen , und wählen Sie <dann in der Dropdownliste Durchsuchen> aus.

  5. Navigieren Sie im Dialogfeld Datei auswählen zum Speicherort Ihrer Contoso-Assembly, und doppelklicken Sie auf FabConPriceAvail.snk.

  6. Klicken Sie im Menü Datei auf Alle speichern.

  7. Erweitern Sie in Projektmappen-Explorer das Projekt HeaderHelper, erweitern Sie den Knoten Eigenschaften, und doppelklicken Sie dann auf den Knoten AssemblyInfo.cs, um die Quelldatei AssemblyInfo.cs zu öffnen.

  8. Geben Sie in der Quelldatei AssemblyInfo.cs den folgenden Code in der Zeile nach dem AssemblyCulture-Attribut ein:

    [assembly: AssemblyKeyFile("../../../FabConPriceAvail.snk")]  
    
  9. Klicken Sie im Menü Datei auf Alle speichern.

So erstellen sie das HeaderHelper-Projekt und stellen es bereit

  1. Klicken Sie in Projektmappen-Explorer mit der rechten Maustaste auf das Projekt HeaderHelper, und klicken Sie dann auf Erstellen.

  2. Starten Sie die Visual Studio 2012-Eingabeaufforderung.

  3. Wechseln Sie an der Eingabeaufforderung zum Speicherort des HeaderHelper-Projektausgabeverzeichnisses (ordner \Bin\Debug).

  4. Geben Sie an der Eingabeaufforderung gacutil /if HeaderHelper.dll ein, und drücken Sie die EINGABETASTE , um die HeaderHelper-Assembly im globalen Assemblycache zu installieren.

Weitere Informationen

Schritt 5: Ändern der Orchestrierung für den privaten Prozess von Contoso