質問

私は農場のソリューションをサンドボックス1に移植しようとしています、そして私はこのコードをポートする方法を理解することができません:

[ToolboxItem(false)]
public partial class vClockPartSB : System.Web.UI.WebControls.WebParts.WebPart
{
    [Personalizable(PersonalizationScope.User)]
    public Collection<String> ClockTimeZones { get; set; }
    [Personalizable(PersonalizationScope.User)]
    public int NumberOfClocks { get; set; }
    [Personalizable(PersonalizationScope.User)]
    public string DdlMain { get; set; }
    [Personalizable(PersonalizationScope.User)]
    public string DdlSubOne { get; set; }
    [Personalizable(PersonalizationScope.User)]
    public string DdlSubTwo { get; set; }
    [Personalizable(PersonalizationScope.User)]
    public string DdlSubThree { get; set; }
    [Personalizable(PersonalizationScope.User)]
    public string DdlSubFour { get; set; }



    protected override void OnInit(EventArgs e)
    {
        ClockTimeZones = new Collection<string>();
        base.OnInit(e);
        InitializeControl();
    }
.

次のエラーが発生します:

Web Part Error:サンドボックスコードによって未処理の例外がスローされました Partial Trust Appドメインのラッパーの実行メソッド:Web Part プロパティ 'ClockTimeZones'はサポートされていないタイプを使用しています (System.Collections.ObjectModel.Collection`1 [[System.String、MSCORLIB、) バージョン= 2.0.0.0、Culture= Neutral、PublicKeykone= B77A5C561934J089]) サンドボックスコードWebパーツとして実行することはできません。

どのように私はそれに近づくべきですか?

役に立ちましたか?

解決

文字列のコレクションではなく、文字列を保存するだけで誘惑され、自分のシリアル化/デシリアライズを実行します。おそらくstring.split()関数と適切な区切り文字を使用しています。

他のヒント

Sandboxでは、System.Collections.ObjectModelネームスペースは許可されていません。

あなたのシナリオのために、リスト 代わりに?

SandboxソリューションのWebパーツのプロパティとして、次の種類のみがサポートされています。

  • 文字列
  • bool
  • enum
  • short
  • int
  • GUID
  • uri
  • byte
  • char
  • 長い
  • float
  • 10進数
  • double

    これはAlan Dahlのブログの記事ここで、Alan Dahlsのブログは検索をしました。

ライセンス: CC-BY-SA帰属
所属していません sharepoint.stackexchange
scroll top