外部オブジェクトを使用して BizTalk マップをデバッグするためのビジュアル スタジオ アドインに取り組んでいます。BizTalk マップ ファイル (.btm プロパティ) の既存のプロパティ ページを読み取るための障害があります。ファイルを読み込むことでファイル構成を読み取ることができました。ただし、プロパティ ページの読み方がわかりません。TestMap 入力インスタンスと TestMap 出力インスタンスの値を探しています。これを試しましたが、buildPropertyStorage が null です。
ProjectItem projectItem = _applicationObject.SelectedItems.Item(1).ProjectItem;
string name = "Name";
IVsHierarchy hierarchy;
Microsoft.VisualStudio.OLE.Interop.IServiceProvider sp = (Microsoft.VisualStudio.OLE.Interop.IServiceProvider)_applicationObject;
IntPtr ip;
Guid id1, id2;
id1 = id2 = typeof(SVsSolution).GUID;
int hr = sp.QueryService(ref id1, ref id2, out ip);
IVsSolution solution = (IVsSolution)System.Runtime.InteropServices.Marshal.GetObjectForIUnknown(ip);
solution.GetProjectOfUniqueName(projectItem.ContainingProject.UniqueName, out hierarchy);
IVsBuildPropertyStorage buildPropertyStorage = hierarchy as IVsBuildPropertyStorage;
string value = null;
if (buildPropertyStorage != null)
{
uint itemId;
string fullPath = (string)projectItem.Properties.Item("FullPath").Value;
hierarchy.ParseCanonicalName(fullPath, out itemId);
buildPropertyStorage.GetItemAttribute(itemId, name, out value);
}