Quais são as implicações do uso de código inseguro
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 )
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.