0

私は SharePoint 2007 MOSS インスタンスを持っており、事実調査を行っています。複数の開発者がいて、複数の Web パーツを開発して展開しています (VS2005/2008 SharePoint 拡張機能を使用)。

自分のサイトの「Web パーツ ギャラリー」リストのフィールドを見て、「変更者」で見ることができるのではないかと思ったのですが、開発者の名前が既製の Web パーツの一部にあるようです。 、カスタム開発されていることがわかっているものでは、「システムアカウント」と表示されているため、このリストのそのフィールドを見ることはできません.

次に、各 Web パーツが割り当てられた「グループ」を確認できるのではないかと考えましたが、一貫性を欠いて多くの異なるグループに恣意的に割り当てられているようです。そのため、その情報を使用することはできません。

これは、ループしてすべての Web パーツの名前を取得するためのコードです。カスタム開発された Web パーツであるかどうかを教えてくれる、Web パーツのリスト項目でアクセスできるプロパティはありますか? カスタム Web パーツと既成の Web パーツを区別する方法はありますか? これを行う別の方法はありますか?

        #region Misc Site Collection Methods
        public static List<string> GetAllWebParts(string connectedSPInstanceUrl)
        {
            List<string> lstWebParts = new List<string>();

            try
            {
                using (SPSite site = new SPSite(connectedSPInstanceUrl))
                {
                    using (SPWeb web = site.OpenWeb())
                    {
                        SPList list = web.Lists["Web Part Gallery"];
                        foreach (SPListItem item in list.Items)
                        {
                            lstWebParts.Add(item.Name);
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                lstWebParts.Add("Error");
                lstWebParts.Add("Message: " + ex.Message);
                lstWebParts.Add("Inner Exception: " + ex.InnerException.ToString());
                lstWebParts.Add("Stack Trace: " + ex.StackTrace);
            }

            return lstWebParts;
        }
        #endregion
4

1 に答える 1

1

Web パーツをエクスポートしてみましたか? Web パーツの右上にある矢印をクリックし、[エクスポート] をクリックします。XML ファイルとしてエクスポートされます。メタデータ タグを探します。例えば:

<metaData>
  <type name="Microsoft.SharePoint.Portal.WebControls.KPIListWebPart, Microsoft.SharePoint.Portal, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" />
  <importErrorMessage />
</metaData>

type 属性は、アセンブリ情報を提供します。カスタム Web パーツの場合、ほとんどの場合、アセンブリ名は Microsoft.Sharepoint 以外にする必要があります。

于 2010-05-14T15:21:04.797 に答える