Megosztás a következőn keresztül:


Hírcsatorna-szolgáltató implementálása C#-alapú Windows-alkalmazásban

Megjegyzés:

Egyes információk az előre kiadott termékre vonatkoznak, amelyek jelentősen módosíthatók a kereskedelmi forgalomba kerülés előtt. A Microsoft nem vállal kifejezett vagy hallgatólagos szavatosságot az itt megadott információkra vonatkozóan.

Ez a cikk bemutatja, hogyan hozhat létre egy egyszerű hírcsatorna-szolgáltatót, amely regisztrál egy hírcsatorna-tartalom URI-t, és implementálja az IFeedProvider felületet. Az interfész metódusait a Widgets Board meghívja egyéni lekérdezési sztringparaméterek kéréséhez, általában a hitelesítési forgatókönyvek támogatásához. A hírcsatorna-szolgáltatók egyetlen vagy több hírcsatornát támogathatnak.

A hírcsatorna-szolgáltató C++/WinRT használatával történő implementálásához tekintse meg a hírcsatorna-szolgáltató implementálását win32-alkalmazásokban (C++/WinRT).

Előfeltételek

  • Az eszköznek engedélyeznie kell a fejlesztői módot. További információért tekintse meg az Eszköz engedélyezése fejlesztésre című útmutatót.
  • Visual Studio 2022 vagy újabb verzió a Univerzális Windows Platform fejlesztési munkafolyamattal.

Új C#-konzolalkalmazás létrehozása

Hozzon létre egy új projektet a Visual Studióban. Az Új projekt létrehozása párbeszédpanelen állítsa a nyelvi szűrőt "C#" értékre, a platformszűrőt pedig Windowsra, majd válassza ki a Konzolalkalmazás projektsablont. Adja az új projektnek az "ExampleFeedProvider" nevet. Ebben az útmutatóban győződjön meg arról, hogy a Megoldás és projekt elhelyezése ugyanabban a könyvtárban nincs bejelölve. Amikor a rendszer kéri, állítsa a cél .NET-verziót 6.0-ra.

Amikor a projekt betöltődik, a Megoldáskezelőben kattintson a jobb gombbal a projekt nevére, és válassza a Tulajdonságok lehetőséget. Az Általános lapon görgessen le a Cél Rendszer részhez, és válassza a "Windows" lehetőséget. A Cél operációsrendszer-verzió területen válassza a 10.022631.2787-es vagy újabb verziót.

Vegye figyelembe, hogy ez az útmutató egy konzolalkalmazást használ, amely megjeleníti a konzolablakot a hírcsatorna aktiválásakor a könnyű hibakeresés érdekében. Ha készen áll a hírcsatorna-szolgáltató alkalmazás közzétételére, a konzolalkalmazást Windows-alkalmazássá alakíthatja a konzolalkalmazás konvertálása a Konzolalkalmazás átalakítása Windows-alkalmazássá című témakörben leírt lépések végrehajtásával.

Hivatkozások hozzáadása a Windows App SDK NuGet-csomaghoz

Ez a minta a legújabb stabil Windows App SDK NuGet-csomagot használja. A Megoldáskezelőben kattintson a jobb gombbal a Függőségek elemre , és válassza a NuGet-csomagok kezelése... lehetőséget. A NuGet-csomagkezelőben válassza a Tallózás lapot, és keressen rá a "Microsoft.WindowsAppSDK" kifejezésre. Válassza ki a legújabb stabil verziót a Verzió legördülő listában, majd kattintson a Telepítés gombra.

FeedProvider-osztály hozzáadása a hírcsatornaműveletek kezeléséhez

A Visual Studio-ban kattintson a jobb gombbal a ExampleFeedProvider projektre a Megoldáskezelőben, és válassza a Hozzáadás ->Osztálylehetőséget. Az Osztály hozzáadása párbeszédpanelen nevezze el a "FeedProvider" osztályt, és kattintson a Hozzáadás gombra. A létrehozott FeedProvider.cs fájlban frissítse az osztálydefiníciót, hogy azt jelezze, hogy implementálja az IFeedProvider felületet.

Hozzon létre egy CLSID azonosítót , amellyel azonosíthatja a hírcsatorna-szolgáltatót a COM-aktiváláshoz. Visual Studióban generáljon GUID-azonosítót úgy, hogy lép a Eszközök ->GUID létrehozásamenüpontra. Mentse ezt a GUID-azonosítót egy szövegfájlba, amelyet később használhat a hírcsatorna-szolgáltató alkalmazás csomagolásakor. Cserélje le a GUID azonosítót az alábbi példában látható FeedProvider osztály jegyzeteiben.

// FeedProvider.cs
using Microsoft.Windows.Widgets.Feeds.Providers;
...
[ComVisible(true)]
[ComDefaultInterface(typeof(IFeedProvider))]
[Guid("xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx")]
public sealed class FeedProvider : IFeedProvider

Az IFeedProvider metódusok implementálása

A következő néhány szakaszban implementáljuk az IFeedProvider felület módszereit .

Megjegyzés:

Az IFeedProvider felület visszahívási metódusaiba átadott objektumok csak a visszahíváson belül lesznek érvényesek. Ne tároljon hivatkozásokat ezekre az objektumokra, mert a visszahívás környezetén kívüli viselkedésük nincs meghatározva.

OnFeedSzolgáltatóEngedélyezve

Az OnFeedProviderEnabled metódust akkor hívja meg a rendszer, ha a Widgets Board gazdagép létrehoz egy, a szolgáltatóhoz társított hírcsatornát. A módszer megvalósítása során létre kell hozni egy lekérdezési sztringet, amely tartalmazza azokat a paramétereket, amelyek átkerülnek a hírcsatorna tartalmát biztosító URL-címre, beleértve a szükséges hitelesítési tokeneket is. Hozzon létre egy CustomQueryParametersUpdateOptions példányt, az esemény argumentumából átadva a FeedProviderDefinitionId azonosítót, amely azonosítja az engedélyezett hírcsatornát és a lekérdezési karakterláncot. Kérje le az alapértelmezett FeedManagert , és hívja meg a SetCustomQueryParameterst , hogy regisztrálja a lekérdezési sztring paramétereit a Widgets Boardban.

// FeedProvider.cs

public void OnFeedProviderEnabled(FeedProviderEnabledArgs args)
{
    Console.WriteLine($"{args.FeedProviderDefinitionId} feed provider was enabled.");
    var updateOptions = new CustomQueryParametersUpdateOptions(args.FeedProviderDefinitionId, "param1&param2");
    FeedManager.GetDefault().SetCustomQueryParameters(updateOptions);
}

AmikorAdatszolgáltatóLetiltva

Az OnFeedProviderDisabled akkor van meghívva , amikor a widgetek táblája le van tiltva a szolgáltató összes hírcsatornáján. A hírcsatorna-szolgáltatóknak nem kell semmilyen műveletet végrehajtaniuk a metódushívásra válaszul. A metódushívás telemetriai célokra, illetve a lekérdezési sztring paramétereinek frissítésére vagy a hitelesítési jogkivonatok visszavonására használható, ha szükséges. Ha az alkalmazás csak egyetlen hírcsatorna-szolgáltatót támogat, vagy ha az alkalmazás által támogatott összes hírcsatorna-szolgáltató le van tiltva, akkor az alkalmazás a visszahívásra válaszul kiléphet.

// FeedProvider.cs
public void OnFeedProviderDisabled(FeedProviderDisabledArgs args)
{
    Console.WriteLine($"{args.FeedProviderDefinitionId} feed provider was disabled.");
}

OnFeedEngedélyezve, OnFeedLetiltva

Az OnFeedEnabled és az OnFeedDisabled parancsot a Widgets Board hívja meg, ha egy hírcsatorna engedélyezve van vagy le van tiltva. A hírcsatorna-szolgáltatóknak nem kell semmilyen műveletet végrehajtaniuk ezekre a metódushívásokra válaszul. A metódushívás telemetriai célokra, illetve a lekérdezési sztring paramétereinek frissítésére vagy a hitelesítési jogkivonatok visszavonására használható, ha szükséges.

// FeedProvider.cs
public void OnFeedEnabled(FeedEnabledArgs args)
{
    Console.WriteLine($"{args.FeedDefinitionId} feed was enabled.");
}

// FeedProvider.cs
public void OnFeedDisabled(FeedDisabledArgs args)
{
    Console.WriteLine($"{args.FeedDefinitionId} feed was disabled.");
}

EgyéniLekérdezésParaméterekKérés

Az OnCustomQueryParametersRequested akkor merül fel, amikor a widgetek táblája megállapítja, hogy a hírcsatorna-szolgáltatóhoz társított egyéni lekérdezési paramétereket frissíteni kell. Előfordulhat például, hogy ez a módszer akkor merül fel, ha a hírcsatorna-tartalom távoli webszolgáltatásból való lekérésének művelete meghiúsul. Az ebbe a metódusba átadott CustomQueryParametersRequestedArgsFeedProviderDefinitionId tulajdonsága határozza meg azt a hírcsatornát, amelyhez a lekérdezési sztring paramjait kérik. A szolgáltatónak újra kell létrehoznia a lekérdezési sztringet, és a SetCustomQueryParameters meghívásával vissza kell adnia azt a widgetek táblájának.

// FeedProvider.cs

public void OnCustomQueryParametersRequested(CustomQueryParametersRequestedArgs args)
{
    Console.WriteLine($"CustomQueryParamaters were requested for {args.FeedProviderDefinitionId}.");
    var updateOptions = new CustomQueryParametersUpdateOptions(args.FeedProviderDefinitionId, "param1&param2");
    FeedManager.GetDefault().SetCustomQueryParameters(updateOptions);
}

Implementáljon egy osztálygyárat, amely kérésre példányosítja a FeedProvidert.

Ahhoz, hogy a hírcsatorna-gazdagép kommunikálhasson a hírcsatorna-szolgáltatóval, meg kell hívnunk a CoRegisterClassObject parancsot. Ehhez a függvényhez létre kell hoznunk az IClassFactory implementációját, amely létrehoz egy osztályobjektumot a FeedProvider osztályhoz. Az osztálygyárat egy önálló segédosztályban fogjuk megvalósítani.

A Visual Studio-ban kattintson a jobb gombbal a ExampleFeedProvider projektre a Megoldáskezelőben, és válassza a Hozzáadás ->Osztálylehetőséget. Az Osztály hozzáadása párbeszédpanelen nevezze el az osztályt "FactoryHelper"-nek, majd kattintson a Hozzáadásgombra.

Cserélje le a FactoryHelper.cs fájl tartalmát a következő kódra. Ez a kód meghatározza az IClassFactory felületet, és implementálja annak két metódusát, a CreateInstance-t és a LockServert. Ez a kód egy osztály-előállító implementálásához használt sablon, és nem jellemző a hírcsatorna-szolgáltató működésére, csak azt jelzi, hogy a létrehozott osztályobjektum implementálja az IFeedProvider interfészt .

// FactoryHelper.cs
using Microsoft.Windows.Widgets.Feeds.Providers;
using System.Runtime.InteropServices;
using WinRT;

namespace ExampleFeedProvider
{
    namespace Com
    {
        static class Guids
        {
            public const string IClassFactory = "00000001-0000-0000-C000-000000000046";
            public const string IUnknown = "00000000-0000-0000-C000-000000000046";
        }

        [ComImport(), InterfaceType(ComInterfaceType.InterfaceIsIUnknown), Guid(Guids.IClassFactory)]
        internal interface IClassFactory
        {
            [PreserveSig]
            int CreateInstance(IntPtr pUnkOuter, ref Guid riid, out IntPtr ppvObject);
            [PreserveSig]
            int LockServer(bool fLock);
        }

        static class ClassObject
        {
            public static void Register(Guid clsid, object pUnk, out uint cookie)
            {
                [DllImport("ole32.dll")]
                static extern int CoRegisterClassObject(
                    [MarshalAs(UnmanagedType.LPStruct)] Guid rclsid,
                    [MarshalAs(UnmanagedType.IUnknown)] object pUnk,
                    uint dwClsContext,
                    uint flags,
                    out uint lpdwRegister);

                int result = CoRegisterClassObject(clsid, pUnk, 0x4, 0x1, out cookie);
                if (result != 0)
                {
                    Marshal.ThrowExceptionForHR(result);
                }
            }

            public static int Revoke(uint cookie)
            {
                [DllImport("ole32.dll")]
                static extern int CoRevokeClassObject(uint dwRegister);

                return CoRevokeClassObject(cookie);
            }
        }
    }

    internal class FeedProviderFactory<T> : Com.IClassFactory
            where T : IFeedProvider, new()
    {
        public int CreateInstance(IntPtr pUnkOuter, ref Guid riid, out IntPtr ppvObject)
        {
            ppvObject = IntPtr.Zero;

            if (pUnkOuter != IntPtr.Zero)
            {
                Marshal.ThrowExceptionForHR(CLASS_E_NOAGGREGATION);
            }

            if (riid == typeof(T).GUID || riid == Guid.Parse(Com.Guids.IUnknown))
            {
                // Create the instance of the .NET object
                ppvObject = MarshalInspectable<IFeedProvider>.FromManaged(new T());
            }
            else
            {
                // The object that ppvObject points to does not support the
                // interface identified by riid.
                Marshal.ThrowExceptionForHR(E_NOINTERFACE);
            }

            return 0;
        }

        int Com.IClassFactory.LockServer(bool fLock)
        {
            return 0;
        }

        private const int CLASS_E_NOAGGREGATION = -2147221232;
        private const int E_NOINTERFACE = -2147467262;
    }
}

A hírcsatorna-szolgáltató osztályobjektumának regisztrálása az OLE-vel

A végrehajtható fájlunk Program.cs fájlban meghívjuk a CoRegisterClassObject függvényt, hogy regisztráljuk a hírcsatorna-szolgáltatónkat az OLE-ben, így a Widgets Board kommunikálhat vele. Cserélje le a Program.cs tartalmát a következő kódra. Ez az előző lépésben definiált FeedProviderFactory felületet használja a FeedProvider segédosztály regisztrálásához. Hibakeresési célokból ez a példa meghívja a GetEnabledFeedProviderst az alapértelmezett FeedManager-példányon , hogy lekérje az engedélyezett hírcsatorna-szolgáltatókat képviselő FeedProviderInfo-objektumok listáját. Az engedélyezett adatforrás-szolgáltatókon végighaladva, a EnabledFeedDefinitionIds tulajdonságot használva listázza az összes engedélyezett adatforrás-azonosítót.

// Program.cs

using Microsoft.Windows.Widgets.Feeds.Providers;
using Microsoft.Windows.Widgets.Providers;
using System; 
using System.Runtime.InteropServices;

namespace ExampleFeedProvider
{

    public static class Program
    {
        [DllImport("kernel32.dll")]
        static extern IntPtr GetConsoleWindow();

        [MTAThread]
        static void Main(string[] args)
        {
            Console.WriteLine("FeedProvider Starting...");
            if (args.Length > 0 && args[0] == "-RegisterProcessAsComServer")
            {
                WinRT.ComWrappersSupport.InitializeComWrappers();

                uint registrationHandle;
                var factory = new FeedProviderFactory<FeedProvider>();
                Com.ClassObject.Register(typeof(FeedProvider).GUID, factory, out registrationHandle);

                Console.WriteLine("Feed Provider registered.");

                var existingFeedProviders = FeedManager.GetDefault().GetEnabledFeedProviders();
                if (existingFeedProviders != null)
                {
                    Console.WriteLine($"There are {existingFeedProviders.Length} FeedProviders currently outstanding:");
                    foreach (var feedProvider in existingFeedProviders)
                    {
                        Console.WriteLine($"  ProviderId: {feedProvider.FeedProviderDefinitionId}, DefinitionIds: ");
                        var m = WidgetManager.GetDefault().GetWidgetIds();
                        if (feedProvider.EnabledFeedDefinitionIds != null)
                        {
                            foreach (var enabledFeedId in feedProvider.EnabledFeedDefinitionIds)
                            {
                                Console.WriteLine($" {enabledFeedId} ");
                            }
                        }
                    }
                }
                if (GetConsoleWindow() != IntPtr.Zero)
                {
                    Console.WriteLine("Press ENTER to exit.");
                    Console.ReadLine();
                }
                else
                {
                    while (true)
                    {
                        // You should fire an event when all the outstanding
                        // FeedProviders have been disabled and exit the app.
                    }
                }
            }
            else
            {
                Console.WriteLine("Not being launched to service Feed Provider... exiting.");
            }
        }
    }
}

Vegye figyelembe, hogy ez a példakód importálja a GetConsoleWindow függvényt annak megállapításához, hogy az alkalmazás konzolalkalmazásként fut-e, az útmutató alapértelmezett viselkedését. Ha a függvény érvényes mutatót ad vissza, hibakeresési információkat írunk a konzolra. Ellenkező esetben az alkalmazás Windows-alkalmazásként fut. Ebben az esetben megvárjuk az OnFeedProviderDisabled metódusban beállított eseményt, ha az engedélyezett hírcsatorna-szolgáltatók listája üres, és kilépünk az alkalmazásból. A példakonzolalkalmazás Windows-alkalmazássá alakításával kapcsolatos információkért lásd : Konzolalkalmazás átalakítása Windows-alkalmazássá.

A hírcsatorna-szolgáltató alkalmazás becsomagolása

Az aktuális kiadásban csak a csomagolt alkalmazások regisztrálhatók hírcsatorna-szolgáltatókként. Az alábbi lépések végigvezetik az alkalmazás csomagolásának és az alkalmazásjegyzék frissítésének folyamatán, hogy regisztrálja az alkalmazást az operációs rendszeren hírcsatorna-szolgáltatóként.

MSIX csomagolási projekt létrehozása

A Megoldáskezelőben kattintson a jobb gombbal a megoldásra, és válassza az Add-New> Project(Új projekt hozzáadása) lehetőséget. Az Új projekt hozzáadása párbeszédpanelen válassza a "Windows Alkalmazáscsomagoló projekt" sablont, és kattintson a Tovább gombra. Állítsa a projekt nevét "ExampleFeedProviderPackage" értékre, majd kattintson a Létrehozás gombra. Amikor a rendszer kéri, állítsa a célverziót a 22621-es vagy újabb buildre, és kattintson az OK gombra. Ezután kattintson a jobb gombbal az ExampleFeedProviderPackage projektre, és válassza a Projekt hozzáadása> referenciát. Válassza ki az ExampleFeedProvider projektet, és kattintson az OK gombra.

Windows App SDK-csomaghivatkozás hozzáadása a csomagolási projekthez

Az MSIX csomagolási projekthez hozzá kell adnia egy hivatkozást a Windows App SDK nuget-csomaghoz. A Megoldáskezelőben kattintson duplán az ExampleFeedProviderPackage projektre az ExampleFeedProviderPackage.wapproj fájl megnyitásához. Adja hozzá a következő xml-t a Project elemhez.

<!--ExampleWidgetProviderPackage.wapproj-->
<ItemGroup>
    <PackageReference Include="Microsoft.WindowsAppSDK" Version="1.5.231116003-experimentalpr">
        <IncludeAssets>build</IncludeAssets>
    </PackageReference>  
</ItemGroup>

Megjegyzés:

Győződjön meg arról, hogy a PackageReference elemben megadott verzió megegyezik az előző lépésben hivatkozott legújabb stabil verzióval.

Ha a Windows App SDK megfelelő verziója már telepítve van a számítógépen, és nem szeretné csomagolni az SDK-futtatókörnyezetet a csomagban, a csomagfüggőséget az ExampleFeedProviderPackage projekt Package.appxmanifest fájljában adhatja meg.

<!--Package.appxmanifest-->
...
<Dependencies>
...
    <PackageDependency Name="Microsoft.WindowsAppRuntime.1.5.233430000-experimental1" MinVersion="2000.638.7.0" Publisher="CN=Microsoft Corporation, O=Microsoft Corporation, L=Redmond, S=Washington, C=US" />
...
</Dependencies>
...

A csomagjegyzék frissítése

A Megoldáskezelőben kattintson a jobb gombbal a fájlra, Package.appxmanifest és válassza a Kód megtekintése lehetőséget a jegyzék xml-fájljának megnyitásához. Ezután hozzá kell adnia néhány névtér-deklarációt a használni kívánt alkalmazáscsomag-bővítményekhez. Adja hozzá a következő névtérdefiníciókat a legfelső szintű csomagelemhez .

<!-- Package.appmanifest -->
<Package
  ...
  xmlns:uap3="http://schemas.microsoft.com/appx/manifest/uap/windows10/3"
  xmlns:com="http://schemas.microsoft.com/appx/manifest/com/windows10"

Az Alkalmazáselemen belül hozzon létre egy új üres, Bővítmények nevű elemet. Győződjön meg arról, hogy ez a uap:VisualElementszáró címkéje után jelenik meg.

<!-- Package.appxmanifest -->
<Application>
...
    <Extensions>

    </Extensions>
</Application>

Az első bővítmény, amelyet hozzá kell adnunk, a ComServer bővítmény. Ez regisztrálja a végrehajtható fájl belépési pontját az operációs rendszeren. Ez a bővítmény a COM-kiszolgáló regisztrációs kulcs beállításával történő regisztrálásával egyenértékű csomagolt alkalmazás, és nem a widget-szolgáltatókra vonatkozik. Adja hozzá a következő com:Extension elemet a Bővítmények elem gyermekelemeként. Módosítsa a com:Class elem Azonosító attribútumának GUID azonosítóját az előző lépésben létrehozott GUID-ra a FeedProvider osztály definiálásakor.

<!-- Package.appxmanifest -->
<Extensions>
    <com:Extension Category="windows.comServer">
        <com:ComServer>
            <com:ExeServer Executable="ExampleFeedProvider\ExampleFeedProvider.exe" Arguments="-RegisterProcessAsComServer" DisplayName="C# Feed Provider App">
                <com:Class Id="xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" DisplayName="FeedProvider" />
            </com:ExeServer>
        </com:ComServer>
    </com:Extension>
</Extensions>


Ezután adja hozzá az alkalmazást hírcsatorna-szolgáltatóként regisztráló bővítményt. Illessze be a uap3:Extension elemet a következő kódrészletbe, a Bővítmények elem gyermekeként. Mindenképpen cserélje le a COM-elemClassId attribútumát az előző lépésekben használt GUID azonosítóra.

<!-- Package.appxmanifest -->
<Extensions>
    ...
    <uap3:Extension Category="windows.appExtension">
        <uap3:AppExtension Name="com.microsoft.windows.widgets.feeds" DisplayName="ContosoFeed" Id="com.examplewidgets.examplefeed" PublicFolder="Public">
            <uap3:Properties>
                <FeedProvider Icon="ms-appx:Assets\StoreLogo.png" Description="FeedDescription">
                    <Activation>
                        <!-- Apps exports COM interface which implements IFeedProvider -->
                        <CreateInstance ClassId="xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" />
                    </Activation>
                    <Definitions>
                        <Definition Id="Contoso_Feed"
                            DisplayName="Contoso_Feed Feed"
                            Description="Feed representing Contoso"
                            ContentUri="https://www.contoso.com/"
                            Icon="ms-appx:Images\StoreLogo.png">
                        </Definition>
                        <Definition Id="Fabrikam_Feed"
                            DisplayName="Fabrikam Feed"
                            Description="Feed representing Example"
                            ContentUri="https://www.fabrikam.com/"
                            Icon="ms-appx:Images\StoreLogo.png">
                        </Definition>
                    </Definitions>
                </FeedProvider>
            </uap3:Properties>
        </uap3:AppExtension>
    </uap3:Extension>
</Extensions>

Az összes elem részletes leírásáért és formázási információiért tekintse meg a Hírcsatorna-szolgáltató csomagjegyzékének XML-formátumát.

A hírcsatorna-szolgáltató tesztelése

Győződjön meg arról, hogy kiválasztotta a fejlesztői gépnek megfelelő architektúrát a Megoldásplatformok legördülő listából, például "x64". A Megoldáskezelőben kattintson a jobb gombbal a megoldásra, és válassza a Megoldás létrehozása lehetőséget. Ha ez megtörtént, kattintson jobb gombbal az ExampleWidgetProviderPackage elemre, és válassza a Üzembe helyezéslehetőséget. A konzolalkalmazásnak üzembe helyezéskor kell elindulnia, és látni fogja, hogy a hírcsatornák engedélyezve lesznek a konzol kimenetében. Nyissa meg a Widgets Boardot, és az új hírcsatornákat a hírcsatornák szakasz tetején lévő füleken kell látnia.

A hírcsatorna-szolgáltató hibakeresése

Miután rögzítette a hírcsatornákat, a widgetplatform elindítja a hírcsatorna-szolgáltató alkalmazást, hogy releváns információkat kapjon és küldjön a hírcsatornáról. A futó hírcsatorna hibakereséséhez csatolhat egy hibakeresőt a futó hírcsatorna-szolgáltató alkalmazáshoz, vagy beállíthatja, hogy a Visual Studio automatikusan elindítsa a hírcsatorna-szolgáltatói folyamat hibakeresését az indítás után.

A futó folyamathoz való csatoláshoz:

  1. A Visual Studióban kattintson a(z) Hibakeresés -> Csatlakozásfolyamathoz.
  2. Szűrje a folyamatokat, és keresse meg a kívánt hírcsatorna-szolgáltató alkalmazást.
  3. Csatold a hibakeresőt.

Annak érdekében, hogy a hibakereső automatikusan csatolva legyen a folyamathoz az első indításkor:

  1. A Visual Studióban kattintson a Hibakeresés –> Egyéb hibakeresési célok –> Telepített alkalmazáscsomag hibakeresése elemre.
  2. Szűrje a csomagokat, és keresse meg a kívánt hírcsatorna-szolgáltatói csomagot.
  3. Válassza ki, és jelölje be a jelölőnégyzetet, amelynek szövege: "Ne induljon el, de végezzen hibakeresést, amikor a kód elindul".
  4. Kattintson az ésCsatolás gombra.

A konzolalkalmazás átalakítása Windows-alkalmazássá

Az útmutatóban létrehozott konzolalkalmazás Windows-alkalmazássá alakításához kattintson a jobb gombbal az ExampleFeedProvider projektre a Megoldáskezelőben , és válassza a Tulajdonságok lehetőséget. Az Application-General> területen módosítsa a kimenet típusát a "Konzolalkalmazás" típusról a "Windows-alkalmazás" értékre.

Képernyőkép a C#-hírcsatorna-szolgáltató projekttulajdonságáról a Windows-alkalmazásra beállított kimeneti típussal

A hírcsatorna-szolgáltató alkalmazás közzététele

A hírcsatorna-szolgáltató fejlesztése és tesztelése után közzéteheti az alkalmazást a Microsoft Store-ban, hogy a felhasználók a hírcsatornákat az eszközeikre telepíthessék. Az alkalmazások közzétételével kapcsolatos részletes útmutatásért lásd : Alkalmazás közzététele a Microsoft Store-ban.

A Hírcsatornák tárgyűjteménye

Miután közzétette az alkalmazást a Microsoft Store-ban, kérheti, hogy az alkalmazás szerepeljen a Hírcsatornák Áruház gyűjteményében, amely segít a felhasználóknak felderíteni a Windows-hírcsatornákat tartalmazó alkalmazásokat. A kérés elküldéséhez tekintse meg a Hírcsatorna/Tábla beküldése a Store Gyűjteményhez.