none
Modificadores para classe RRS feed

  • Pergunta

  • Bom dia Galera, tenho o seguinte cenário,

    Tenho um classe principal ClassPrincipal , onde tenho propriedades que são instâncias de outras classes, todas as classes são definidas como Public Class NomedaClasse.

    O problema é o seguinte : vou gerar uma biblioteca da classe principal ClassPrincipal , só que quando eu importo a biblioteca no sistema cliente, aparece tb as outras classes que são propriedades da ClassPrincipal , onde eles podem ser instanciados.

    A pergunta é qual o Modificador que indica que a classe pode ser vista apenas na classe ClassPrincipal, e quando eu importar a bilblioteca as outras classe não podem ser usado no sistema cliente.

    At,

    Max Porto

    sexta-feira, 16 de agosto de 2013 16:34

Todas as Respostas

  • Não entendi muito bem, mas vamos lá.

    Se vc tiver biblioteca.dll

    classes que vc quer que não aparece quando importar a dll.

    internal class Nome{}

    classes visiveis quando importar a dll

    public class Nome{}

    abaixo o link tem uma explicação

    http://msdn.microsoft.com/pt-br/library/Vstudio/wxh6fsc7.aspx

    • Sugerido como Resposta Sócrates Lopes sexta-feira, 16 de agosto de 2013 17:17
    sexta-feira, 16 de agosto de 2013 17:01
  • Max 

    Boa tarde

    Você pode definir como protect e fazer a ClassPrincipal herdar essa classe 

    Abraços


    Marcio S Silva | marsosil@ovi.com | marsosi.blogspot.com.br

    • Sugerido como Resposta Márcio S Silva sexta-feira, 16 de agosto de 2013 17:06
    sexta-feira, 16 de agosto de 2013 17:02
  • Se o seu intuito e fazer com que, quando você utilize esse objeto apareça apenas suas propriedades próprias e que as propriedades do tipo classe, ou seja, public ClassTeste classTeste {get;set;}, troque o public dessas propriedades por private ou como ja foi dito pelo Márcio utilize o protected.

    Espero ter ajudado.

    abras 

    sexta-feira, 16 de agosto de 2013 17:24
  • Boa tarde!

    Você pode fazer como o Cesar sugeriu.

    Não é recomendável escrever as suas classes como public a não ser que exista um propósito para isso.

    Neste link você pode encontrar toda a referência que procura: http://msdn.microsoft.com/pt-br/library/ba0a1yw2(v=vs.90).aspx

    Uma referência rápida:

    Membros do

    enum

    public

    Nenhum

    class

    private

    public

    protected

    internal

    private

    <sentencetext xmlns="http://www.w3.org/1999/xhtml">protected internal</sentencetext>

    interface

    public

    Nenhum

    struct

    private

    public

    internal

    private


    Sócrates Lopes
    Mircosoft MTA
    socrates@socrateslopes.com.br

    sexta-feira, 16 de agosto de 2013 17:29
  • Galera, desculpe se não consegui colocar corretamente o meu problema, mas vou colocar o código para facilitar, é em VB.NET , achei melhor postar no fórum de C# pois é mais fácil de sanar as dúvidas, pela quantidade de pessoas usuárias do forúm.

    'Essa é minha classe principal Public Class nfe Private m_Ide As XmlIdentificacaoNFeED Public Property Ide() As XmlIdentificacaoNFeED Get Return m_Ide End Get Set(ByVal value As XmlIdentificacaoNFeED) m_Ide = value End Set End Property Sub New() m_Ide = New XmlIdentificacaoNFeED End Sub End Class 'Essa é minha classe que é uma propriedade na classe nfe(classe principal) Public Class XmlIdentificacaoNFeED Private m_Valor_cUF As String = String.Empty Private m_Valor_natOp As String = String.Empty Private m_Valor_indPag As String = String.Empty Sub New() End Sub Public Property cUF() As String Get Return m_Valor_cUF End Get Set(ByVal value As String) m_Valor_cUF = value End Set End Property Public Property natOp() As String Get Return m_Valor_natOp End Get Set(ByVal value As String) m_Valor_natOp = value End Set End Property Public Property indPag() As String Get Return m_Valor_indPag End Get Set(ByVal value As String) m_Valor_indPag = value End Set End Property End Class 'O problema é aqui na aplicação que receberá a dll Imports Procergs.NFC.MapeamentoNF.Xml Sub Main() 'Essa é estrutura que montei Dim xmlnfe As New nfe xmlnfe.Ide.cUF = 43 xmlnfe.Ide.natOp = "Conserto (no RS)" xmlnfe.Ide.indPag = 2 'Essa objeto Classe = XmlIdentificacaoNFeED não poderia aparecer pois

    ele já esta representada (propriedade na objeto nfe)

    Dim classe As New XmlIdentificacaoNFeED classe.cUF = 43 classe.natOp = "Conserto (no RS)" classe.indPag = 2 Dim x As New Xml.Serialization.XmlSerializer(xmlnfe.GetType) x.Serialize(Console.Out, xmlnfe) Console.WriteLine() Console.ReadLine() End Sub


    sexta-feira, 16 de agosto de 2013 19:11