Criando propriedades públicas em soluções de webpart em área restrita
-
09-12-2019 - |
Pergunta
Estou tentando portar uma solução de farm para uma solução em sandbox e não consigo descobrir como portar este trecho de código:
[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();
}
Estou tendo o erro a seguir:
Erro de Web Part:A exceção não atendida foi lançada pelo método executivo do Wrapper Code Wrapper no domínio do aplicativo de confiança parcial:Propriedade da Web Part 'ClockTimeZones' usa o tipo não suportado (System.Collection.ObjectModel.Collection`1 [[System.String, Mscorlib, versão = 2.0.0.0, Culture = neutro, PublicKeyToken = B77A5C561934E089]] e não pode ser executado como A Código da Sandboxed Web Part.
Como devo abordar isso?
Solução
Eu ficaria tentado a armazenar apenas uma string - em vez de uma coleção de strings - e executar minha própria serialização/desserialização.Provavelmente usando a função string.Split() e um delimitador adequado.
Outras dicas
O System.Collections.ObjectModel
namespace não é permitido no Sandbox.
Para o seu cenário, você poderia usar o Lista<sequência> em vez de?
Aparentemente, apenas os seguintes tipos são suportados como propriedades da web part na solução sandbox:
- corda
- bool
- Enum
- curto
- interno
- Guia
- Uri
- byte
- Caracteres
- longo
- flutuador
- decimal
- dobro
Aqui está um link para Alan Dahl artigo do blog onde o blog de Alan Dahls fez a pesquisa.