• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

Nazgulled

Dúvida em C# que não faço ideia como descrever o assunto...

3 mensagens neste tópico

O que eu quero fazer é criar uma biblioteca para que qualquer utilizador a possa usar nos seus programas. O problema não é criar a biblioteca em si mas como interagir com o programa principal que a está a usar.

No programa principal, irá existir uma classe que poderá ter qualquer nome à escolha do seu programador e outra nota a ter em conta é que o nome da assembly do programa principal é bem provável que seja completamente diferente do da biblioteca. Este classe (que neste exemplo irei chamar ClassA) é constituida por um conjunto de propriedades públicas. E a minha biblioteca pretende ser capaz de ler os valores das propriedades da ClassA para que possa executar um conjunto de funções com esses valores.

A ideia da biblioteca é criar uma lista de estruturas de dados que irá guardar algumas informações sobre as respectivas propriedades. Por exemplo, a estrutura e a lista possivelmente serão definidas assim:

public struct sInfo {
    public string name;
    public string category;
    public string default;
}

public List<sInfo> infoList;

Agora, supondo que a ClassA é composta com as seguintes propriedades:

public class ClassA {
    public string Prop1 {
        get; set; // Automatic properties
    }

    public string Prop2 {
        get; set; // Automatic properties
    }
}

O código principal será algo como:

ClassA ca = new ClassA();
Library l = new Library(); // A minha biblioteca

l.AddItem("Prop1", "Category", "Default");
l.AddItem("Prop2", "Category", "Default");

l.DoSomething("Prop1");

A ideia do método DoSomething() é pegar na string "Prop1" e ler o valor da propriedade Prop1 que está em ClassA. Como faço isto?

A minha ideia inicial seria passar a variável ca como referência para dentro da biblioteca (usando o construtor por exemplo), mas não nos podemos esquecer dos problemas já mencionados: 1) Diferentes nomes de classes; 2) Diferentes nomes para a assembly de cada projecto.

Alguém tem ideias?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Não percebi nada do que querias.

Podes dar dois exemplos divergentes? Para ver o que é suposto ser igual em todos os casos e o que pode variar de caso para caso?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

O que é igual é a minha biblioteca que será usada pelos programas, o que muda é apenas o nome da classe no programa principal...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora