Existe uma maneira de conceder acesso privilegiado a um .NET assembly apenas a um outro conjunto?
-
22-07-2019 - |
Pergunta
Eu tenho uma biblioteca de classes montagem e um código de teste. Porque as necessidades de código de teste para espreitar os internos da classe, ele precisa ser parte do conjunto e porque eu não quero ter que executar todo por ele é auto, ele precisa ter algo público de modo que uma lata de montagem diferente invocá-lo. Isso acaba aderência em algum código que não deveria estar lá no conjunto principal.
O que eu gostaria é colocar todo o código de teste no outro conjunto e de alguma forma lhe conceder privilégios para internos de acesso da classe. Eu não preciso que isso seja parte do produto final, apenas como parte do debug / constrói privado.
É possível?
Solução
Faça uso liberal do modificador de acesso internal
e adicionar o InternalsVisibleTo atributo ao conjunto.
Outras dicas
Você quer System.Runtime.CompilerServices.InternalsVisibleTo ()
Você também pode usar o reflexo para acesso / membros privados internos. Isto é como MSTest faz isso.