I am trying to implement the Strategy design pattern using interfaces.However, while developing some code I stumbled upon something strange.The type of the object is not verified in design-time.Observe the following code.Notice that Foo implements IFoo and Bar DOES NOT implement this interface.No error is shown when trying this:[code]This code compiles fine. No error is shown in Visual Studio.However, when I run this piece of code, I receive an InvalidCastException.The output of the console:[code]
I use check boxes and place them on my user interface (See attachment)I have coded the code for "select all" button :
Code: Private Sub checkedall_Click(ByVal sender As System.Object, ByVal e As_ System.EventArgs) Handles checkedall.Click Dim chkboxes, outs As New Collection()
[code]....
I could not seems to check all the boxes. Is there something wrong with it? I am not sure how to assign array to check boxes.
I am building a software which will be used to create a remote desktop connection. However I'm getting this error:
Unable to cast COM object of type 'System.__ComObject' to interface type 'MSTSCLib.IMsTscNonScriptable'. This operation failed because the QueryInterface call on the COM component for the interface with IID '{C1E6743A-41C1-4A74-832A-0DD06C1C7A0E}' failed due to the following error: Δεν υποστηρίζεται τέτοια διασύνδεση (Exception from HRESULT: 0x80004002 E_NOINTERFACE)).
In trying to add a bit of usage variety to a generic class I'm working on, I ran into this issue with trying to cast an object into an interface instance where the interface is defined inside the generic class.
I have been trying to use vb2008 to automatically update CustomDocumentProperties fields that I have set up within a pro-forma document. I can load the Word application and word document without problems.I want to update the CustomDocumentProperties fields with data read from a dB. To do this I am assuming that I need to iterate through the CustomDocumentProperties fields within the word document and when one is "found" that matches the data I wish to merge then assign the dB value to the field.The problem is that I am getting an exception error when I try to reference the document customdocumentproperties
"Error : Unable to cast the COM object of type 'System._ComObject' to interface type 'Microsoft.Office.Interop.Word.CustomProperties'. ...... "
my code looks like;
Dim WordApp As Word._Application Dim odoc As Word._Document Dim BContinue As Boolean = True
I have a number of controls (Device1, Device2, etc.) that all inherit from BaseDeviceControl. In the DragEnter event handler I am trying to test for the correct type by using the BaseDevvceControl like this....
I need to know if a Type implements an interface. [Code] because the Interface IRule itself is assignable of IRule what raises a MissingMethodExcpetion if i try to create an instance:
UPDATE2: IsAssignableFrom in combination with IsAbstract might be the best way to check if a given type implements an interface and is not the interface itself (what throws a MissingMethodException if you try to create an instance).
If GetType(Rule.IRule).IsAssignableFrom(typeAsm) AndAlso Not typeAsm.IsAbstract Then
While learning to use LINQ in VB.NET, I came across the following:Dim x As IEnumerable = (some LINQ query)
If you can't instantiate an interface, but only a concrete implementation of it, why is this allowed? Is there some difference between doing Dim x as (Type) and Dim x as New (Type)?
All of my classes implement this. I am hesitent, however, to use an interface because of one problem--the type Codes vary by type. Some are strings, some are integers, some are bytes. The only way I could see using an interface would be to make the typeCode an object in the interface and then cast whenever I needed to use it, but that seems a bit silly. Any ideas? This is in VB.NET.
I am looking to implement the ability to compare and sort classes in my model. All of the objects in my model will need some common functionality regarding to comparisons so I created an abstract BaseComparer that implements IComparer.
Public MustInherit Class BaseComparer(Of T) Implements IComparer(Of T) End Class
I'm currently trying to create a class that is a composition of the SqlDataAdapter class (as unfortunately you can't inherit from it). In order to try and make it as similar as possible I'm using all the same inherits and interfaces as is documented on MSDN.The problem that I am having is that there are some properties where the interface specifies that the type of the property is IDbCommand. But in the SqlDataAdapter the property type is SqlCommand.
I would like to have a command prompt type interface on my form. The only thing I am aware of is a textbox, but there are no facilities to have commands and output scroll without keeping the entire history in a variable. That would be an ever increasing variable, which is ridiculous. Is there an alternate way to use a textbox as a command prompt, or is there something else I can do. Another note, is the use of an array. I know I can increase an array with commands, but this is no good either, because some responses in the box need to be paragraphs in length, so even a separate array for command and output is too cumbersome.
MsgBox(AddSomething(Of String)("Hello", "World")) Public Function AddSomething(Of T)(ByVal FirstValue As T, ByVal SecondValue As T) As String Return FirstValue.ToString + SecondValue.ToString
I'd like to check for all colors in an image. I've already came up with this:
Code: Dim lst As New List(Of Color) Dim img As Bitmap = System.Drawing.Bitmap.FromFile("C:image.jpg") For x = 0 To img.Width - 1
[code]....
Unfortunately this needs to sweep through all the pixels, and it's EXTREMELY slow... method to get all colors in an image without sweeping through all pixels?
I had a look through the documentation on the Wiki, but it seems a bit thin. How do I determine if a type implements a given interface using Cecil? For my particular implementation it is important that I do not actually load the type into the AppDomain.m Here's the code that I have so far:
Dim outputModule As ModuleDefinition = ModuleDefinition.ReadModule(outputFile) For Each assemblyType As TypeDefinition In outputModule.Types
'How to determine if assemblyType implements a specific interface?
In many projects I work on, whenever I have to return a read only collection, I use the IEnumerable<T> interface and make it type specific like so:
CODE:
Most of the time, I return a List but in some functions and read only properties I return an array which also serves the purpose alright by kind courtesy of Extension Methods.
My question is am I violating any design principles by returning IEnumerable<T>s instead of specific types (e.g.: List<T>, HashSet<T>, Stack<T> or Arrays)?
I am creating an xlsx reader / writer for my application (based on OpenXML SDK 2.0). I want to read xlsx files and store the data contained in each row in a DTO/PONO. Further I want to read the xlsx file and then modify it and save it.Now my problem is not with the OpenXML SDK, I can do what I need to do.My problem is on how to structure my components. Specifically I have problems with the polymorphism at the lowest level of a Spreadsheet, the cell.A cell in Excel/OpenXML can have different types of data associated with it. Like a Time, Date, Number, Text or Formula. These different type need to be handled differently when read/written from/to a spreadsheet.I decided to have a common interface for all subtypes like TextCell, NumberCell, DateCell etc.Now when I read the cell from the spreadsheet the Method/Factory can decide which type of cell to create.
Now because the cell is an abstract from the real implementation it does not know / does not need to know of what type it is. For writing / modifying the cell I solve this problem by calling .write(ICellWriter) on the cell I want to persist. As the cell itself knows what type of data it contains, it knows which method of ICellWriter it needs to call (static polymorpism).Writing to the xlsx file is no problem. My problem is, how do I get the data out of my cell into my DTO/PONO without resorting to type checking -> If TypeOf variable is ClassX then doesomething End If. As Methods / Properties have to have different Signatures and differentiating by only using a different return type is not allowed.The holder (collection, in this case a row of a table/spreadsheet) of the objects (refering to the cells) does not know the concrete implementations. So for writing a cell I pass it a Cellwriter. This Cellwriter has overloaded methods like Write(num as Integer), Write(text as String), Write(datum as Date). The cell object that gets this passed to it then calls the Write() method with the data type it holds. This works, as no return value is passed back.After some thinking about the problem I came to realize that it's not possible without reflection or knowledge of what type of cell I am expecting. Basically I was trying to recreate a spreadsheet or something with similar functionality and way too abstract/configurable for my needs.
I have an interface ITest with a method GetResult(). I have a class Test which implements ITest and thereby defines private method GetResult().
Next I create an instance of Test in a different class. The code is as below:
Module NewClass Public Sub New() Dim i As ITest = New Test()
[Code]....
I am migrating existing code from VB 6 to VB.NET and hence I'm not supposed to change the access modifier of GetResult. Leaving it Private will throw InvalidCastException Unable to cast object of type 'System.Object' to type 'ITest'
Object type variable o is used in many places and hence I don't want to change that. And yes, Test implements ITest.GetMember with a different name.
I am getting the following error:Unable to cast COM object of type 'TESTSERVERLib.TestClass' to interface type 'TESTSERVERLib.ITest'. This operation failed because the QueryInterface call on the COM component for the interface with IID '{DAFB7D76-0158-452F-8FD0-FF97A683DEA3}' failed due to the following error: No such interface supported (Exception from HRESULT: 0x80004002 (E_NOINTERFACE)).Object reference not set to an instance of an object.Whereas the same code works from an VB .Net Forms application.Can anyone explain why this code does'nt work in a VB .NET windows service.
What is the VB Equivalent of the following C# boolean expression?data.GetType() == typeof(System.Data.DataView)Note: The variable data is declared as IEnumerable.
I am passing various objects to a subroutine to run the same process but using a different object each time. For example, in one case I am using a ListView and in another case I am passing a DropDownList.
I want to check if the object being passed is a DropDownList then execute some code if it is. [code]...
I have a BaseClass, a DerivedClass1 and a DerivedClass2 from a third party library. DerivedClass1 and DerivedClass2 both inherit from BaseClass.There's a ContainerClass, from the same library, with a member variable ActiveItem, which can be of DerivedClass1 or DerivedClass2, so it is declared as BaseClass.I want to know if ActiveItem is of DerivedClass1, as it can change in runtime without notice.If I do
Dim isDerivedClass1 as boolean = TypeOf(oject.ActiveItem) Is DerivedClass1
then I get a compile time error, telling me that ActiveItem can never be of DerivedClass1 type.I have tried several combinations of GetType and TypeOf but it doesn't seem possible to check this. I have also tried to declare an auxiliary DerivedClass1 variable and comparing their types, but haven't got any luck either.
Edit:The following code doesn't compile in vs2005 SP1.
Public Class Base Public x As Integer End Class Public Class Derived1
I am trying to check whether an object is of a particular class type, or if it derives from a particular class type. I've tried to do this muliple ways. But have not had much success. I am using VB.NET.
Here is the code that am using:
If Me.Page.GetType() Is GetType(AALASWebsite.ContentPage) Then hlPrintPage.Visible = False End If