É possível ter duas partes (mesmo espaço para nome, mesmo nome de classe) em uma classe parcial em DLLs separadas?
c#
dll
partial-classes
Brad
fonte
fonte
Respostas:
Do MSDN - Classes e métodos parciais :
fonte
Não. Classes parciais são um recurso puramente de linguagem. Quando uma montagem é compilada, os arquivos são combinados para criar o tipo. Não é possível espalhar os arquivos em diferentes montagens.
Porém, dependendo do que você deseja fazer, você poderá usar métodos de extensão para realizar o que precisa.
fonte
Não, não é possível. Quando a montagem é compilada, a classe precisa ser concluída.
fonte
Enquanto outras respostas fornecem o desagradável "Não" que qualquer pessoa que chegue a esta página não quer ver ou ouvir, fiquei impressionado com outro pensamento que ainda não foi mencionado aqui. Se classes parciais fossem permitidas em assemblies, seria possível acessar membros particulares de tipos existentes que não foram escritos por ele, permitindo-lhe manipulá-los de maneiras que não eram pretendidas pelo autor original, comprometendo assim a funcionalidade de todas as classes herdadas também.
Além disso, essas classes em outras assembléias (e seus filhos) precisariam ser recompiladas para que funcionasse. Portanto, logicamente não é possível permitir a divisão de uma classe em diferentes montagens.
fonte
Você pode usar métodos de extensão quando desejar adicionar um método a uma classe em uma dll diferente. A única desvantagem deste método é que você não pode adicionar métodos estáticos.
fonte
A questão é por que você deseja criar uma classe parcial em outra montagem? Você pode definir classes e interfaces abstratas entre os assemblies, talvez seja necessário analisar isso.
fonte
Você provavelmente só deseja criar uma classe Wrapper dentro da sua própria biblioteca, em torno da classe na biblioteca da 3ª parte. Em seguida, adicione qualquer funcionalidade à classe de wrapper.
fonte