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