I'm working on a new DAL for my latest project. As the performance is essential I'm avoiding late binding/reflection as much as possible. One central part is the DAL function for populating Business Objects.One class is called in order to connect to the database with the given SQL (stored procedures can't be used in this environment) and the given Business Object or List is populated. As different Business Object types will be populated by the same function I made an Interface that all of the Business Objects implements with the Sub called "Fill". The question is - will reflection be used in this scenario? My thought was as I'm "describing" the objects trought the interface the compiler doesn't need to use Reflection.
I'm attempting to dynamically register entities and configurations with a context (ef4 code-only). I would normally do:
Private Shared Sub ConfigureDatabase(ByRef Builder As ContextBuilder(Of ContextExtension)) 'Load configurations for each of the tables (Entity sets) in our database... ConfigureEntity(Builder, New ContactConfig) End Sub Private Shared Sub ConfigureEntity(Of T)(ByRef Builder As ContextBuilder(Of ContextExtension), ByVal config As EntityConfiguration(Of T), ByVal setName As String) 'Register the entity configuration with the builder Builder.Configurations.Add(config) 'Register the entity set name with the builder Builder.RegisterSet(Of T)(setName) End Sub
Where ContactConfig is a class which inherits EntityConfiguration(Of Contact) and Contact is a class which implements an interface IEntity (IEntity is common to all entities). So... I need to search a namespace (say Project.DB.Client) for all signatures that match: EntityConfiguration(Of <Class which implements IEntity>) How can I achieve this?
I'm using EF 4.3.1 in VS 2010 (.Net 4.0) to load a number of reference tables from a database in order to bind them to controls in a WinForms app.At form load, I'm pre-fetching the data so that it's stored locally, and I'm creating a dictionary of BindingSource objects that I can use to bind the local data to the controls.The intent is to minimize the impact of the EF's self validation on a cold query in order to load forms faster and improve UI responsiveness.I've written code to create and fetch the BindingSource object for a given DbSet collection as follows:
Private _dictBindings As New Dictionary(Of String, BindingSource) Private Sub ValidateBinding(Of T As Class)(ByRef DbCollection As DbSet(Of T)) Dim strClassName As String = DbCollection.[GetType]().GetGenericArguments(0).Name If Not _dictBindings.ContainsKey(strClassName) Then[code].....
However, I'd like to call ValidateBinding on all DbSet collections in the Model on startup, and I'd like to use reflection to iterate through the available collections in the context because we're currently loading 66 tables and could add more later.I've written the following code:
For Each propSet As PropertyInfo In Db.GetType.GetProperties(BindingFlags.Instance Or BindingFlags.Public).Where(Function(P) P.PropertyType.IsGenericType) ValidateBinding(propSet.GetValue(Db, Nothing)) Next
but it won't work as propSet.GetValue() returns an Object instead of DbSet(of T).I also can't cast the object to a DbSet of the appropriate type, even though I know the type through reflection.I don't have access to the C# Dynamic type,and I know it's a pain to mix generics with reflection, but is there a solution for which I can pass in a reflected DbSet to my functions?Perhaps something using Method.Invoke?
I'm looping all the properties in an object via reflection:
For Each p As PropertyInfo In values.[GetType]().GetProperties() If p.CanRead Then 'Do stuff End If Next
how to determine whether the property in question is a generic List(Of T)? If it is I need to loop the list itself.
I've experimented with GetType and TypeOf but have not managed to get anything working.
To clarify, I want to keep this generic. I do not want to specify the type of T, I need to loop the list items and call the ToString method on each item. T could be one of a number of different types (application specific reference types). Is it possible to do this without specifying types?
We have migrated our Vb6 application to VB.NET using a third party tool. Now we are in a process of Refactoring and introducing object oriented concepts in the application.
In VB6, we were using structures in many places. As a part of introducing object oriented programming,
1. is it a good idea of changing all Structures to Classes? or Is there a concept of "Generic Structure" similar to Generic collections, Generic classes?
2. Can some one guide me any source containing guide lines or best practices for applications that are migrated to VB.NET from VB6 and implementing object oriented programmaing.
Public MustInherit Class Column Public ReadOnly Property ReturnSomethingUseful() As Object Get 'return something useful
[code]....
But this gives the following error:
Public Overrides Function ParseValue(sValue As String) As Boolean' cannot override 'Public Overridable Function ParseValue(sValue As String) As Object' because they differ by their return types.
I accept that you can't do this, but I'd like to be able to preserve the semantics of what I'm. trying to do, which is to have an untyped version that deals with Object, but a typed version in derived classes that knows about the specific type T.
I am trying to construct a generic interface class with generic functions. My goal was to use this to implement multiple worker classes for database interaction that have the same basic functionality. Each class will deal with different object for example, category, product or supplier but unless the the functions in the interface are generic that this won't work.This is the interface code that I have but I don't know if I have done it correctly. [code]
I am trying to create a list of a generic type in vb.net 2.0 framework. This is the generic type definition:
Public Class GenericParamMap(Of T) Public Sub New(ByVal pParamName As String, ByVal pPropValue As T) mParamName = pParamName
[Code]....
The compiler does not allow a "T" in the method's parameter because it's not defined, but I'm not sure how or where to define it. I thought it was okay to have a generic method definition.
I am trying to write a generic method, to avoid code duplication, which will create or activate a Form as an MDI children, based on its type. But I have to lines in error (see comments).
Im adding listviewitems and want to avoid duplication. Now currently, I have resorted to looping through the listview and comparing each items text property against what Im adding. But for a big table this is very slow. The ListView has a .Contains Method but this does not seem to do what I would have assumed; for example [code]Is there a way of doing this so I dont have to loop through all the items?
I have the following code block. I'm tired of typing the same IF statement to check if the string has any lenght before assignning them to the class properties of Employee.
Is there any better to accomplish this? Dim title = txtTitle.Text.Trim Dim firstName = txtFirstName.Text.Trim
I'm writing the following bits of code for a SaveFile Dialog box in Visual Basic 2010.NET. The code works well as the XLSX file is created and opens in Microsoft Excel. However, the problem that I am having is that if the program overwrites a file, the user is getting two prompts. One prompt is from the program's own SaveFile dialog confirming the choice. The other is from Microsoft Excel asking you the same. It's as if the program is running in the background.[code]
If dr("iname").ToString = DataGridView1.item(0).cells.item(0).valueThen Then MsgBox("Similar items are not allowed.", MsgBoxStyle.Critical) Exit Sub End If
I need to avoid displaying similar data from my mysql database table iname to the gridview, but I can't identify the right syntax/code for that?
I want to insert number for City_Id and City_name , i wrote a query for auto generate number for City_Id,working fine but in the city name i want to avoid inserting duplicate value like if Mumbai is a City ihave already saved then system should not allow that name again. neither in small or in capital or mixed letter.
One feature of C# compiler is that namespace declaration by default follows the folder name structure in the project. By e.g. you have MyProject1MyDrawing and inside you create a class MyPoint the namespace for MyPoint will be MyProject1.MyDrawing
In VB I cant see any namespace declaration(apparently it implicitly 'inherits' the project(MyProject1) namespace). If I create a MyPoint and MyLine clases in the MyDrawing folder I need to surround each of created classes with "Namespace MyProject1.MyDrawing"..."End Namespace".
Is it possible to automatically name the namespaces like in C# by the folder name?
I have an MS Access database and an MS Visual Basic 2008 front end.I get this error when trying to update a record that has related records:The record cannot be deleted or changed because table 'X' includes related records.I only want to update one field in the row in the 'parent' table which is not the primary key field of either record but the 'Update' command seems to want to rewrite the whole datarow. Rewriting the whole row causes the error (as this updates the primary key). If I switch off refrential integrity checking in the underlying database this solves the problem except that I want to maintain referential integrity so its not really a solution. I have tried beginEdit and EndEdit with no success - same error.Is there a way to update just one field in a row and write that back to the database?
I need the Logitech HD Webcam C310 to be preselected.When the Main Form opens the Webcam must be running allready, withoute having to select it from the Video Source Window.
I've seen a good bit written on avoiding updating a form from a thread.However,I was wondering if that was a problem if the thread exists in an object that programatically builds the form?Thus the form and associated logic exist within the same "thread space." Seems on the face of it like it would work since everything in the form should be in a single dispatch queue.
This particular function is used to save the returned results for a ping sent across the internet. Unfortunately the code won't let me Use the streamwriter method or the fileopen method, because it says:"The process cannot access the file 'C:UsersChrisDocumentsPinging DataFilesave2.txt' because it is being used by another process."
Private Sub SaveToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles SaveToolStripMenuItem.Click FileOpen(1, "C:UsersChrisDocumentsPinging Datacount.txt", OpenMode.Input, OpenAccess.Read)
i get a lots of errors with my application because users doesn't have the .Net Framework installed so i was thinking, can't i take every .net framework resource that my application uses and needs, and add it as a reference in my application so that the user does not need to install .Net Framework?
I am creating an application that parses an XML and retrieves some data. Each xml node specifies the data (const), a recordset's column-name to get the data from (var), a subset of possible data values depending on some condition (enum) and others. It may also specify, alongside the data, the format in which the data must be shown to the user.
The thing is that for each node type I need to process the values differently and perform some actinons so, for each node, I need to store the return value in a temp variable in order to later format it... I know I could format it right there and return it but that would mean to repeat myself and I hate doing so. So, the question: How can I store the value to return, in a temp variable, while avoiding boxing/unboxing when the type is unknown and I can't use generics? P.S.: I'm designing the parser, the XML Schema and the view that will fill the recordset so changes to all are plausible.
If a booking is present in database on 12/27/2011 at 5:00 pm for 2 hours and i try to make a new booking on 12/27/2011 between 5 to 7 pm then my code generates an error message. Even if i try to book at 4:00 pm for 2 hours it generates an error message as the 2nd hour will be overlapped here with already made booking from 5:00 to 7:00.
Now here comes the problem part. When day changes it doesn't generate error message i.e. IF a booking is there on 12/27/2011 at 11:00 pm for 3 hours then it should not allow new booking till 12/28/2011 2:00 am but when i try to book 12/28/2011 at 1:00 am it saves it in the database and doesn't generate an error message. I want an error message generated in such a case.
I am using two separate fields in database one for time and one for date. Both of them have DateTime datatype.
newtime refers to time on which i'm trying to make new booking addednewtime refers to time after adding the duration to time on which i'm trying to make new booking
I've got a Word Addin in VB.net and VSTO that exposes a COM compatible object via Word.COMAddins.Object, so that the addin functionality can be called External to Word, without accesses to Word itself being cross-process.The technique worked in VB6, but with VB.net, it still works, but it's much slower than the same code running directly from the addin via a task pane, as if the calls are all cross process when they shouldn't be.Anyone who's ever done Word automation knows that code that runs perfectly acceptably INPROC with Word (in this case the instance of the ADDIN that Word itself loads), will generally run unacceptably slowly out of process (or cross process).[code]And slow as in a factor of about 10 to 1; what takes 3 seconds to run when run directly from the ADDIN via the task pane, takes ~30seconds to run when called from external code through the COMADDIN.object object. I'm guessing that I'm running into some sort of issue with .net APPDOMAINS or something and what +really+ constitutes cross proc calls in .net, but I've found nothing so far that would even hint about this sort of thing.My next step, barring some mystical insight, will be to code up a repro, which could get tricky because of the shear number of elements in play.
loading of form when I experiment with Debug.Write code?I deleted the form,placed code in a standard module before running the program but am getting an error message.With the form existing I get what I want but I just don't need to wait for the form to load and then to click cancel to close it.Is it not possible to have just a standard module in a VB 2010 Express project? If not can't I place the code in form1.vb but stop it from loading every time I test something?
I'm writing the following bits of code for a SaveFile Dialog box in Visual Basic 2010.NET. The code works well as the XLSX file is created and opens in Microsoft Excel. However, the problem that I am having is that if the program overwrites a file, the user is getting two prompts. One prompt is from the program's own SaveFile dialog confirming the choice. The other is from Microsoft Excel asking you the same. It's as if the program is running in the background. Does anyone know how I can write this code to save the file as an Excel file? [Code]