Interfaces, Type Identity, Extending .net Native Classes?
Jun 18, 2010
So in a lot of frameworks there is usually some base type that you tend to extend a lot because well, it is what enables the "visual" aspect of the framework. Here in .Net it's the Control/Form... you tend to be inheriting these frequently for different things, and despite the suggestions otherwise, the team always agrees to extend explicitly and forget about composition.So now say you want to create some relationship between all of these... just a simple interface that uncovers some basic properties that all your forms and controls should have. In this case lets call it 'IProjControl'
Code:
Public Interface IProjControl
Property ProjControlId() As String
[code]....
So this interface is something you expect all your windows and dialog boxes and other some other controls implement. They all don't extend the same exact type, they all just happen to be controls.In there lies the problem... you want to enforce the contract with this interface that not only is it a 'IProjControl', but it's also a 'Control'. But we can't exactly have our interface extend Control (that doesn't make sense), and there isn't an 'IControl' interface to require implementing.
So the method I've always used is something like this:
Code:
Public Interface IProjControl
ReadOnly Property ProjControlComponent() As Control
Property ProjControlId() As String
[code]....
(if there is actually a language/compiler specific feature that allows you to require an interface implementation to be implemented by a class extending a specific type... please, do tell... but I highly doubt there is because for all intensive purposes that sounds weird).
View 12 Replies
ADVERTISEMENT
Jun 13, 2012
How can I structure my classes so that the user interfaces though a single class while the supporting classes are hidden from their view? I think its best understood in an example:
Public Class MyInterface
Public Economic as EconomicClass
Public Sub New()
MyBase.New()
[code].....
So you might ask why am I even separating them? It's strictly for others who will be working with this interface. I need to funnel them though a logical structure:
interface.Economic.MyMethod
interface.Currency.MyMethod
etc
This way everything is already handled for them in the background and they only need to run the method they need. I don't know if I can have it both ways in VB.NET.
View 23 Replies
Jul 28, 2011
I need to add functionality to my web service calls so object translation and automatic retries are done and abstracted away.I would usually override the base class to add the extra functionality, but as the proxy methods aren't over-ridable I can't keep the method names the same. The only other option I can think of to do it this way is to use the 'Shadows' keyword to achieve what I want.What other methods do people use to add functionality to their web service proxy classes without modifying the generated classes?
View 1 Replies
Feb 26, 2011
I've been wondering if there is anyway to extend a sub of a base class in a derived class or subclass. To date, the only thing I've been able to find is overrides and overloads functions, but to my understanding these functions just ignore your base class's sub and just allows you to run the new one with the same name.
What I want to be able to do is:
CODE:
I'm not sure whether this is possible, or if I'd simply either make a new sub in my derived class that first ran the base's class sub or whether I'd override the base class and then copy and paste the old code.
View 6 Replies
Apr 1, 2010
Briefly, what I'm trying to do is add some methods and properties to the FileInfo class, which is sealed (NotInheritable). As far as I can tell, I have two options to do this.
1) Inherit from FileSystemInfo (the base class for FileInfo) and recreate the methods and properties added by FileInfo (essentially recreating the FileInfo class from scratch)
2) Use extension methods (??) which I just learned about two minutes ago and it being 1am, I'm going to get into this tomorrow
3) Create a wrapper class around a FileInfo object - I think that's the proper term
Ok, so I guess there are 3 options.
A) Why make a class uninheritable
B) Is creating a wrapper class "basically" the same as inheriting from an object, but at least with inheritence you don't need to create any properties and methods other than those you want to modify or add?
Am I correct when I say that a Field is a protected property that can only be accessed by the base class and inherited classes, or is the definition of a field something else?
View 2 Replies
Nov 2, 2009
is there anyway we could extend a shared function for a class? example:
<Extension()> Public Shared Function GetName(ByRef e As [Enum], ByVal value As Object) As String
Return [Enum].GetName(e.GetType, value)
[Code].....
however i dun hav a choice as Extension methods can be declared only within modules
View 21 Replies
Jan 19, 2010
is there any reason why we couldn't add/extend an interface to an already existing class?
i believe this would be v useful. it would be like drawing links from my class to already existing classes, and drawing links from already existing classes to already existing classes
View 8 Replies
Jan 15, 2010
i was trying to inherit System.Type. this is what i have:
[Code]...
and anyway the real problem is that inheriting System.Type without declaring my derived class as 'MustInherit
View 9 Replies
Nov 16, 2009
Sometime ago I used to create all my class structures in vision before I wrote them. That however didn't last. I found it easier to just make little drawings with pencil and piece of paper. And I still do to this day. In code usually those drawings manifest themselves as interfaces which then are implemented by different classes. I do all this in code. And I was just wondering if there is any tools available in Visual Studio for VB.NET that would allow to create interfaces and implement them in classes (which a lot of times means just adding variables to class that will hold data passed with interface attributes) from design mode(kinda like using Visio only after you finish you don't have to write out code).
View 3 Replies
May 10, 2012
I am trying to create an interface and then about 3 or 4 singleton classes that would be accessed via the interface.I know how to get interfaces to work and I know how to create concrete singleton classes and access them via GetInstance(). But when I put the two together, failure results.My problem is in the GetInstance method of the concrete singletons as in
Public Class MovingList
implements ISelectedList
[code]....
ISelectedList is the interface. This fails because ISelectedList.GetInstance is not of the type MovingList. Plus there is a problem with the use of Shared that I think is solved by simply deleting it (interfaces implicitly share).I can't define the type of ISelectedList.GetInstance because each of my singleton classes is of a different type even though they implement exactly the same properties and methods.How best to implement such singleton classes? I could do away with the interface and simply deal directly with the concrete singletons but that feels like bad practice. Programming to an abstraction not an implementation and all that.
View 6 Replies
Jan 27, 2012
I am getting this error No mapping exists from object type System.String[] to a known managed provider native type.The code is
Dim conn1 As SqlConnection
conn1 = New SqlConnection("Data Source=win2008-2;Initial Catalog=h1tm11;User ID=sa;Password=#1cub3123*;Persist Security Info=True;")
' Dim conn1 As String = ConfigurationManager _ .ConnectionStrings("Connectionstring").ConnectionString()
'conn1.ConnectionString = ConfigurationManager.ConnectionStrings("Data Source=win2008-2;Initial Catalog=h1tm11;User ID=sa;
[code].....
the error occurs at adapter.Fill(table)
Dim addressstring1 As String = txtpostcode.Value.Trim()
Dim addressstring() As String = Split("addressstring1", ",", 1)
View 1 Replies
Jun 25, 2010
So say I define some interface, and that interface has members that need to be implemented under some idea, and I then implement this interface on a class that already has those members defined. How do I NOT receive errors about having to implement said members despite them already being implemented (because I didn't type the oh so ridiculous 'implements IMyInterface.foo').
For example say I have an interface that defines the event KeyPress, and then I have a custom Form that implements this interface of mine. It throws an error. VB is the 5th language I've worked in that uses interfaces... and up until now they've all treated interfaces relatively the same. This is the first time I've seen this not allowed. What perplexes me more, is it IS allowed in other .Net languages. Just not VB.
[Code]...
View 4 Replies
Feb 17, 2012
I have a class /interface hierarchy. On the interface side I have
IQuery
ISelect (inherits IQuery)
IUpdate (inherits IQuery)
[code].....
View 2 Replies
Jan 27, 2010
I am tightening up my coding with the Option Strict set to ON. It has now produced alot of errors. An example of this is:
If AllocatedDGV.Rows(i).Cells("RoomNumber").Value = RoomsAvailableDGV.Rows(j).Cells("RoomName").Value Then
It gives me the following error: Option Strict On disallows operands of type Object for operator '='. Use the 'Is' operator to test for object identity.
View 6 Replies
Apr 6, 2012
I need to write an interface to get data to/from our data files.
We have a low level class that holds field values for each record read from the files.
This just holds two values, the value read from the file (DBValue) and the updated value that may need to be written back to the file (CurrentValue).
These values may be any of the standard value types (integer, date etc) or a string.
Either value (DBValue or CurrentValue) may be null if not defined.
I have written the class to manage this data which works fine while option strict is NOT on.
But we have an office policy of having option strict on all the time.
When I put option strict on, my object value comparisons fail with the error: "Option Strict On disallows operands of type Object for operator '='. Use the 'Is' operator to test for object identity."
Question, how should I change the following code to handle option strict on ...
This is all running on Visual Studio 2010
[Code]...
View 1 Replies
Jul 28, 2010
This is the code I'm trying to develop:
Public Structure Statistic(Of t)
Dim maxStat As t
Dim curStat As t
[Code].....
View 2 Replies
Mar 21, 2012
I have a generic function in VB.Net. I also have two classes called A and B. Is it possible to allow the generic constraints on my function to allow the Type to be either class A or B? Class A and B do not share any base classes except for object.
View 1 Replies
Mar 3, 2011
I will preface this by saying Im previously an asp developer and am learning oop programming/Vb.Net
Im working on a 3 tier architecture and trying to abstract my code as much as possible since I have a very large intranet to convert. In my business layer I am defining my classes with management methods. Below is an example of one of my classes.
My question: Is there a way for me to genericaly refer to the class type and object type so that I dont have to continualy refer to the class name/type "ServiceRequest" throughout the class. For example something like:
[Code]...
View 1 Replies
Apr 2, 2012
I have a serializable Message class that has a Data As Object property that I'm using as a generic holder for information to be sent via a system that uses a combination of push technology and/or IPC to communicate with any other programs that are interested in the information. This allows the communication piece to be agnostic of the information it transmits.
I was serializing this Data As Object as a Byte[], since I was worried about how an Object being serialized and transmitted across the network would behave on the other side. However, when deserializing I get errors about being unable to find the assembly for the types stored within my Data As Object property, because I'm deserializing in the assembly that contains the Message class... not the assembly that contains the type that Data As Object originally was.I was wondering if I'd lose the type information and be unable to cast it back to the type I want at the other end. Perhaps it's not possible to pass a type as an Object via another assembly without it knowing about my type?
View 2 Replies
Dec 10, 2011
I have a parent class that is also a factory. For example:
Public Class Factory
Public Function clone() as Factory
' Some logic here
[code].....
View 2 Replies
Jan 23, 2012
I have two classes, one nested in the other. [code]Neither "Name" or "ID" are unique between operations and records.I wish to construct a dictionary using LINQ = Dictionary(Of String, Of List(Of Integer), whereby the keys are uniqe examples of Names in my collection and the values are the collective set of distinct IDs that are associated with those names.
View 2 Replies
Mar 5, 2010
When you create a webpage in ASP.net, the codebase inherits System.Web.UI.Page Now when I extend the page object to check for SessionExpired for example, I create a new class and inherit from system.web.ui.page, and overwrite some functions. The problem then is that on each page, I have to replace system.web.ui.page with my custompage class. Is there a way to extend a class by adding methods or modifying its methods directly (e.g. add the sessionExpired check to System.Web.UI.Page) ?I'm using .NET 2.0
View 2 Replies
Mar 17, 2011
I have a class within a library, with no root namespace, firstone.dll:
namespace first
public partial class one
public sub fun()
[Code]....
Is there a way to extend the class in a separate dll and still have access to the original class? I don't want to inherit the class just extend it.
View 3 Replies
Jun 27, 2011
I know from .NET 3.5 onwards (or might be 3.0) we can use Exension Methods to add our own methods to any Type in the .NET Framework and this is very handy, but I'm wondering if it is possible to "extend" an Enum as well?
View 13 Replies
Aug 19, 2011
I would like to create a DataGridView that displays records that fill either 18 or 35 columns. I would like to avoid displaying all 35 columns for all records, instead showing the 17 extra columns on a second row for records that need them.How would I go about this? I'm guessing I need to create a new class that inherits from DataGridViewRow and override it's Paint or PaintCells method, but I have no experience with overriding Paint events, so I'm kind of lost after that.
View 8 Replies
Oct 24, 2009
Here is some example code of what I mean:
vb
Public Class Form1
Private Sub Button1_Click(ByVal sender as Object, e as systemEventArgs) Handles Button1.Click
[Code]....
View 5 Replies
Jul 30, 2009
I have an class named Foo. This class contains a collection of child objects of type FooChildBase, but I also have a further class of type FooChildTwo which inherits from FooChildBase.
Class Foo
Public Children As IList(Of FooChildBase)
End Class
Class FooChildBase
[code]....
What I would like to do is have my FooSpecial Class treat it's Children collection as if they were FooChildSpecial objects, but still be able to add FooChildTwo objects to it. Is this possible and if so how can it be done?
EDIT:I need to FooChildSpecial class to wrap any of the objects in the Children collection with the extra values, whether they are FooChildBase or FooChildTwo?
View 3 Replies
Jan 11, 2010
I am wondering if I can extend a component (e.g a button ) in vb the same way I can in java which enables you to modify the component for your specific requirement or create a new one from scratch.
View 3 Replies
Oct 31, 2011
I'm currently using the log4net portion of the Castle Windsor logging facility, like so:
objContainer.AddFacility("logging", New LoggingFacility(LoggerImplementation.Log4net)WithConfig("ConfigsLog4net.config"))
I need to pass in a couple of variables to the logger because I am using dynamic log file names. I have looked at the source code and determined that one possible course of action is to create a custom factory and facility but this is alot of work and I'm not sure it is best practice.
View 1 Replies
Jul 10, 2009
I m trying to raise Click event of Textbox explictly but I m getting "Derived classes cannot raise base classes" error.[code]....
View 1 Replies