Instance of derived class does not show public methods or properties that are not in the inherited c

D

D Witherspoon

What is happening is that I have a class (ClassA) that inherits a class
(ClassB) which inherits System.Net.Mail.MailMessage

Project 1 references Project 2,
Project 2 references Project 3.

When I declare an instance of "ClassA" in a thrid project I get all of the
public methods/properties that are in the System.Net.Mail.MailMessage class,
but I do not get any of the public methods or properties that are
specirfically declared in Class B

Has anyone seen this before or could help me along in this situation?
Thanks...

I am using VS.NET 2005.


PROJECT 3
=========
Public MustInherit Class EmailMessage_Base

Inherits System.Net.Mail.MailMessage

Public Sub New()

mybase.new()

End Sub

Public Sub Test

End Sub

End Class



PROJECT 2
==========

Public Class EmailMessage

Inherits Project3.EmailMessage_Base

Public Sub New()

MyBase.New()

''''typing in me. brings up Test in the intellisense to the class at least
knows it is there
End Sub

End Class



PROJECT 1
=========

Public Class Form1

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button1.Click

Dim mail As New Project2.EmailMessage()

mail.From = New System.Net.Mail.MailAddress("(e-mail address removed)")

mail.To.Add("test")

mail.Bcc.Add("(e-mail address removed)")

mail.CC.Add("(e-mail address removed)")

mail.Subject = "sdfgs"

mail.Body = "testing"

mail.Test '<--------------Test does not show up in the list of methods in
the intellisense


End Sub

End Class
 
T

tommaso.gastaldi

Putting the whole thing into a file, works... Perhaps a reference
(1->3) is missing...
Let me know...

-tom

----------------
Public MustInherit Class EmailMessage_Base
Inherits System.Net.Mail.MailMessage

Public Sub New()
MyBase.new()
End Sub

Public Sub Test()
End Sub

End Class

Public Class EmailMessage
Inherits EmailMessage_Base

Public Sub New()

MyBase.New()
'typing in me. brings up Test in the intellisense to the class
at least
'knows(it Is there)
End Sub

End Class


Public Class Form1

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button1.Click

Dim mail As New EmailMessage()

mail.From = New
System.Net.Mail.MailAddress("(e-mail address removed)")
mail.To.Add("test")
mail.Bcc.Add("(e-mail address removed)")
mail.CC.Add("(e-mail address removed)")
mail.Subject = "sdfgs"
mail.Body = "testing"


mail.Test() '<--------------Test does not show up in the list
of methods in
'the(intellisense)

'It appears to me !

End Sub

End Class



D Witherspoon ha scritto:
 
G

Guest

Reference project 3 in project 1 or set up an override and call base in
Project2.

--
Gregory A. Beamer
MVP; MCP: +I, SE, SD, DBA

***************************
Think Outside the Box!
***************************
 
D

D Witherspoon

Could you explain what the logic behind this is? Or help me understand...

Why would Project 3 have to reference Project 1? If it is inheriting,
shouldn't Project 3 be able to use all the members that the class in Project
2 is inheriting already?
 
T

tommaso.gastaldi

Looks like referencing is not "transitive" (like inheritance). It's
more just a matter of scope...
Perhaps since you had in mind the idea of inheritance you were kind of
extending it also to references, but as you have demonstrated, the idea
does not seem to apply...

D Witherspoon ha scritto:
 
R

Renze de Waal

In VB.NET 2005 Express Edition I get an error message stating I need a
reference to Project 1. The help states that this is needed to avoid ambiguity
in case the class is defined in more than one dll or assembly. I am not sure
what they mean by that, but prefer the error message over the strange
behaviour that was described.

Renze de Waal.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top