luglio 2007 Blog Posts
Oggi mi sono imbattuto nella necessità di impostare la Custom Property OpenRowset di un Data Flow Component (un OLE DB Source per la precisione) all'interno di un Data Flow Task. Combinando Google, MSDN, intuito e designer di Visual Studio :), sono riuscito nel mio intento tramite il seguente codice:
using Microsoft.SqlServer.Dts.Runtime;
using Microsoft.SqlServer.Dts.Pipeline.Wrapper; // Classi e interfacce per creare Data Flow Components ed automatizzare Data Flow Tasks
...
TaskHost MyTaskHost = (TaskHost)package.Executables[0]; // Attenzione all'ordinale ;)
// MainPipe: wrapper per configurare un Data Flow Task programmaticamente
MainPipe dataFlowTask = MyTaskHost.InnerObject as MainPipe;
// Ciascun componente del Data Flow Task è rappresentato da un ComponentMetadata
IDTSComponentMetaData90 MyComponentMetadata = dataFlowTask.ComponentMetaDataCollection["MyComponentName"];
// Accesso alla Custom Property...
Riporto un utile esempio di codice C# per accedere in lettura alle email contenute nella cartella "posta in arrivo" di Outlook 2007 via MAPI. L'unico requisito è chiaramente la la referenza alla dll Microsoft Outlook 12.0 Object Library. using Microsoft.Office.Interop.Outlook;
...
Application app = new Microsoft.Office.Interop.Outlook.ApplicationClass();
_NameSpace ns = app.GetNamespace("MAPI");
ns.Logon(null, null, false, false);
// Cartella di default: "Posta in arrivo"
MAPIFolder IncomingFolder = ns.GetDefaultFolder(OlDefaultFolders.olFolderInbox);
MailItem item = null;
for (int i = 1; i <= IncomingFolder.Items.Count; i++)
{
item = (MailItem)subFolder.Items[i];
Console.WriteLine("Subject: {0},",...
Vorrei segnalare il blog di Derek Mehlhorn, dedicato totalmente allo sviluppo delle Annotations per i controlli WPF FlowDocumentPageViewer, FlowDocumentScrollViewer, FlowDocumentReader e DocumentViewer. Ci sono degli ottimi post su come entrare 'praticamente' nel merito della tecnologia e capirne i reali vantaggi. Molto interessante ;)!!!
Oggi, con una certa soddisfazione , ho sperimentato sulla mia pelle l'utilizzo di IValueConverter, un' interfaccia molto utile (contenuta nel namespace System.Windows.Data di presentationframework.dll) che rende possibile il binding tra proprietà di tipo diverso nel mondo WPF.Nello specifico, all'interno della mia applicazione ho riscontrato il bisogno di un metodo veloce per effettuare il binding tra alcune proprietà di oggetti custom (ordini precisamente... che fantasia !!!) e proprietà di presentazione di una ListBox. Grazie all' implementazione dell'interfaccia IValueConverter, per ciascun ListBoxItem in binding ho potuto quindi realizzare la conversione del valore della proprietà Priority del mio oggetto Order nel valore della proprietà Foreground del corrispondente TextBlock (che visualizza il nome dell'ordine). Ecco l'esempio: <Window ... xmlns:mydata="clr-namespace:MyNamespace">
<Window.Resources>
...