Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

[Dúvida] C#: aplique boas práticas de refatoração e torne seu código mais legível - Removedo duplicidade

Bom dia!

Na aula removendo duplicidade o professor implementa o código abaixo:

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

O meu está igual o dele

        private Dictionary<string, DocComando> docs;

        public Help()
        {
            docs = Assembly.GetExecutingAssembly().GetTypes()
                    .Where(t => t.GetCustomAttributes<DocComando>().Any())
                    .Select(t => t.GetCustomAttributes<DocComando>()!)
                    .ToDictionary(d => d.Instrucao);
        }

, mas da o seguinte erro :

"Severity Code Description Project File Line Suppression State Error CS1061 'IEnumerable' does not contain a definition for 'Instrucao' and no accessible extension method 'Instrucao' accepting a first argument of type 'IEnumerable' could be found (are you missing a using directive or an assembly reference?) Alura.Adopet.Console C:\Users\lorraynecruz\OneDrive - KPMG\Desktop\Estudos\Adopet\BoasPraticasCsharp-master\Alura.Adopet.Console\Help.cs 21 Active"

Onde estou errando?

1 resposta
solução!

Bom pessoal, só foi eu postar... que consegui achar, para quem tiver esse mesmo erro possa ser que vocês tenha colocado o "s" no final do segundo "GetCustomAttribute"

Vou deixar o código abaixo:

        private Dictionary<string, DocComando> docs;

        public Help()
        {
            docs = Assembly.GetExecutingAssembly().GetTypes()
                    .Where(t => t.GetCustomAttributes<DocComando>().Any())
                    .Select(t => t.GetCustomAttribute<DocComando>()!)
                    .ToDictionary(d => d.Instrucao);
        }