Da qualche giorno su XeDotNet ho realizzato una interessante funzionalità che consente di postare i propri articoli tecnici direttamente da Windows Live Writer. In realtà quello che ho fatto è di implementare le MovableType API ritagliandone una versione ad-hoc per il sito web. Assodato che mi sono divertito parecchio (con questo tipo di lavoretti mi sento proprio a mio agio) ho avuto l'occasione di mettere il naso negli assembly di Live Writer. Sono così riuscito a scoprire come fare per istanziare uno degli Adapter (vi ricordate IMHO?). Ecco l'esempio.

using System;
using System.Collections.Generic;
using System.Text;
using WindowsLive.Writer.BlogClient.Clients;
using WindowsLive.Writer.BlogClient;
using WindowsLive.Writer.CoreServices.Settings;
using Microsoft.Win32;
using WindowsLive.Writer.Extensibility.BlogClient;
using WindowsLive.Writer.CoreServices;

namespace TestWriter
{
    
class Program
    {
        
static void Main(string[] args)
        {
            ApplicationEnvironment.Initialize();
            WebProxySettings.ProxyEnabled = 
false;

            ISettingsPersister persister = 
               new RegistrySettingsPersister(Registry.CurrentUser, @"Software\Windows Live Writer");
            IBlogCredentials credentials = 
              
new BlogCredentials(new SettingsPersisterHelper(persister));
            IBlogCredentialsAccessor credentialsAccessor = 
              
new BlogCredentialsAccessor("dummy-value", credentials);

            credentials.Username = "username";
            credentials.Password = "password";

            MovableTypeClient client = 
new MovableTypeClient(
                
new Uri("http://localhost/services/movabletype.aspx"),
                credentialsAccessor,
                PostFormatOptions.Unknown);

            
try
            
{
                BlogPost[] posts = client.GetRecentPosts("0", 5);
                Console.WriteLine(posts.Length);
            }
            
catch (BlogClientInvalidServerResponseException ex)
            {
                Console.WriteLine(ex.Message);
                Console.WriteLine(ex.ErrorMessage);
            }
        }
    }
}

A cosa serve? Ad esempio come nel mio caso a testare le API implementate, ma sono convinto che qualche altro utilizzo si possa trovare facilmente.

powered by IMHO 1.3


per leggere il post originale o inviare un commento visita il seguente indirizzo: Usare gli Adapter di Live Writer