Pergunta

Além do fato de que o próprio código pode acessar a memória diretamente. Quais são as outras implicações de usar o "/ inseguro" bandeira compilador e a palavra-chave "fixo"? Há algum bater em efeitos relacionados com a assinatura de código e implantação de minha .exe (meu aplicativo é somente desktop)?

(Isto não é sobre se ou não eu deveria estar fazendo isso, o por é coberto na minha pergunta aqui )

Foi útil?

Solução

código inseguro não é verificável, então você tem que estar ciente disso. Em um ambiente de confiança total, isso não é um grande negócio, mas se você tiver outros ambientes que têm um conjunto de permissões mais restrito, então isso pode impactar-lo lá.

Outras dicas

Você pode colocar as implicações em dois baldes.

O primeiro é como isso afeta seu ambiente de aplicativos. Usando o código inseguro requer que o assembly ser executado em um ambiente de confiança total. Não é possível executar em um ambiente restrito como certa Click Once configurações de segurança. A razão é que o código não seguro previne o CLR de garantir a segurança do tipo. Clique uma vez que, sem restrições de segurança não deve ter um problema.

O segundo é o que significa para a forma como você código. Usando o código inseguro tipicamente envolve o uso de ponteiros e, em particular, usando-os para triagem avançada realizada via PInvoke. Não há nada de intrinsecamente errado com qualquer uma destas acções embora. Ela exige apenas significativamente mais entendimento do CLR e triagem do que o código "seguro" faz. pinagem objeto é um grande exemplo de conhecimento que você precisa para ter um aperto firme em antes de começar a usar esses recursos.

Para adicionar a referência de Jared para objeto pinagem ...

Ao usar ponteiros para memória de acesso diretamente no C #, você está vulnerável ao CLR mover um objeto em torno de memória em tempo de execução. Isto significa que o ponteiro pode tudo de um ponto de súbita na seção errada da memória. A fixo vontade palavra-chave fixar o objeto na memória para que este problema pode ser evitado.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top