I am using the suggested method from the log4net examples so at the top of said class I have: Private Shared ReadOnly log As log4net.ILog = og4net.LogManager.GetLogger(decType)And since the class involves multiple threads interacting with it, I have a ReaderWriterLockSlim instance that I use to make sure I don't get into any race conditions with my variables. So to recap,if I want to make sure I'm practicing safe threading do I need to do something like this:
If Me.ReaderWriterLockSlim.TryEnterUpgradableReadLock(-1) Then
If log.IsWarnEnabled Then
If Me.ReaderWriterLockSlim.TryEnterWriteLock(-1) Then
So I implemented my own form of Enum static classes so I can associate strings to enumeration values. One of the shared functions in each enum class, GetValue, is used to quickly look up the string value from an internal array via the offset. While all of the enum classes implement the same exact function, the data types of their parameters differ, specific to the enums in each class.
So I come to a point where I want to create a generic class that can use any of the enums by passing it as a generic type parameter. But I cannot find a way to constrain type T in such a way to be able to call each enum's GetValue function. This is where an interface would come in handy, but VB.NET forbids interfaces for shared methods.
I have a base class that I could constrain to, but the base class doesn't implement the GetValue method, and I can't define a generic version of it, because I need to rely on shared properties of each child class in order for GetValue to do its thing.[code]..
It works, when I make getBar methods public, but I don't want to expose these unneccessarily. Why I can't call private shared methods from a public one in the same class is over my head. I'm using .net framework 4.0 in a web application.
I've taken over the maintenance of the website (ASP.NET VB) and on one particular page I noticed the below code
Inherits System.Web.UI.Page Public Shared UserNumber As String Private Sub Page_Init(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Init
[Code]....
My question is whether the variable UserNumber can be accessed or changed by any other user than the current one?
Given in the following language specification, for me at least, calling Db.Foobar() [In the following code] does not indeed call off to the Shared Constructors of the base classes. I am curious as to a) is this my own fault for doing something wrong or b) is this an error in the language specification[code]...
I seem to be drawing a blank. I'd like to create a "shared" variable that is shared with all instances of a class but not classes that inherit from it. For example.Class A: Shared list As New List(Of String): list.Add("A")
Class B Inherits A: list.Add("B")Class C Inherits B: list.Add("C")The end result I'd like is that any instance of A has just A in the list. Any instance of B has A and B in the list. Any instance of C has A, B, and C in the list. I can accomplish it by creating Instance variables, but I have to construct the list for each instance of a class. I'd like to construct it once for a specific point in the Hierarchy and then share it accross other instances of that class.
I am trying to add shared members in derived classes and use that values in base classes...
I have base
class DBLayer public shared function GetDetail(byval UIN as integer) dim StrSql = string.format("select * from {0} where uin = {1}", tablename, uin) end function end class
[Code]..
currently there is error using the tablename variable of derived class in base class but i want to use it i dun know other techniques if other solutions are better then u can post it or u can say how can i make it work? confused...
I'm working on a design project where I have to use a Graphical User Interface that contains a drag and drop form. It consists of having a window dropped on a wall. Both of them are images to scale. I would like to know what kind of code I would have to use to show the x and y coordinates of one of the points of my window when dragged so when I drop it, I'm dropping in it on the desired coordinate of the wall.
I was wondering if I could elicit some tips on how to procede with an interface design approach.That is. What is a good way to go about establishing a "work area" where one can have multiple "floating forms" in this area.Can you have a form which occupies the entire windows desk top and the other forms "float" in this space? the "floating" forms would need to interact with each other where pressing buttons etc on them would affect other forms on the "workspace") Or what would be a good way to start accomplishing that? Or is there a better way to get the same effect?
I'm trying to make a .dll that contains a lot of basic functionality that a program can use. Currently i am trying to use interfaces to make a lot of this functionallity independend of the program using it but i hit a snag. The Basic idea is that a programmer will create his own object using the interface discribed in my .DLL file. Then implements those functions as he likes. He can then instanciate a controller (found in the same DLL) and sends his custom object implementing the interface to that Controller. The controller can then be started and will take over all the work. I do not know what type of object is send to the controller and idealy i want to program it in such a fashion that i shouldn't care as long as the object send implements that interface.In code I am trying to achieve the following: (quite simplyfied)
.Dll: Code: Public Interface MyInterface '<----Decleration of the interfaceFunction GetData() As Integer Function SetData(Data As Integer) end interface
[code]....
this propperly. I know that the second i set the interface adaptor in the Controller VS comes nagging that it can not be converted to a "MyInterface" Class. Obviously i am doing something wrong. I can change the datatype that the controller expects to the "MyController" type but that would completely ruin the whole idea of flexibillity. I am hoping someone sees what i am trying to do and can point out where i made the thinking error.
Is this where i would post a picture of my interface and get feedback on changes for easier use? If not is there someplace on this forum or any other forum to do this?
in the codebase i'm maintaining there is an old interface. Let's call it IFoo. It pretty much became obsolete and replaced with the Interface INewFoo with a change a few weeks ago, but for backwards-compatibility purposes, i wrote a wrapper class which implements INewFoo and takes an IFoo in the constructor.To clarify, consider the following code.
Public Interface IFoo Sub DoStuff() End Interface[code].....
For both interfaces, the implementations are loaded by scanning a few assemblies with StructureMap. Now, let's get to the bad things. Most implementations for the old interface were put into forms for reason i can neither understand nor change. Because those tend to be displayed and disposed, i have to create a new instance every time i use ObjectFactory.GetAllInstances(Of IFoo). Thats still no problem, but i'd like to register a INewFoo-Wrapper for each registered implementation of IFoo, so that i can just use ObjectFactory.GetAllInstances(of INewFoo) and get all implementations of IFoo AND INewFoo.I can't iterate through the implementations of IFoo and register a wrapper for each one because as far as i can see, you can just register those with instances.Wrong code below:
ObjectFactory.Configure(Sub(config) config.Scan(Sub(scan) For Each ass In assemblies[code].....
My question is: Is it possible to register a wrapper for each implementation of IFoo which always creates a new instance of the implementation before creating a new instance of the wrapper?
I want to declare a property as an interface collection of an interface, and I want to instanciate the explicit type later, in the constructor. Something like this.
Public Class LicenseFile Implements ILicenseFile Public Property Collection As IList(Of ILicenseFileDataNode)
[Code]....
In short, the question is "Why It Didn't work"? This is a simplified scenario, but It's easy to take a workarround, But I need understand the reason because It's fails.
is there a difference between shared events and non-shared events?
Private Shared Event EVENT_something_changed() Private Sub SUB_handles_something_changed() Handles Me.EVENT_something_changed End Sub
no errors with this code, but how is Me possible since the Event is shared. it seems like there's no errors between switching shared with un-shared and switching Me with Myclass, all 4 combinations seem to work, isn't that weird
I have an interface class (IUser) which is the interface of class User. Now, i want to put these into an IList but am confused as to how i should declare the IList:Dim userList As IList(Of IUser) = New List(Of IUser) Dim userList As IList(Of User) = New List(Of User) Dim userList As IList(Of IUser) = New List(Of User) Dim userList As IList(Of User) = New List(Of IUser) when instantiating should you always use its implementation; and when using it as a type use its interface?
And when im creating a new user should i use: Dim myUser as IUser = new User?
We have a system that makes a use of 3rd party COM DLL written in vba We have a centralised web application and 1-50 client machines that must reference that COM DLL in order to use our centralised web application.
The COM DLL is going to be updated rapidly in the future, which means that it has to be re-installed on every machine manually.Is it possible to centralise this COM DLL somwhere on the network? Is there any other alternatives? Otherwise the maintenance overhead will be huge.
I've created a Class Library using vb.net, the thing is that several applications should use this file.
I'm using Inno setup, and I'm declaring the dll file to be shared.
in the client app i've added refrence to the dll and set "Copy Local" to false.
Now if i put the exe file (the client app) in the same folder with the dll everything works correctly, but once I move the exe or use another application that should use the so called shared dll the assembly cannot be loaded because the system cannot find him ("IOFileNotFoundException")
I'm working on a voice recognition project in VS 2010. I'm trying to use SpInProcRecoContext instead of the shared one. However, I'm running into issue getting my program to recognize when I'm speaking. When I use the shared one I can make it work just fine. But with InProc it never picks up my voice. Right now it should just take what you say and put it into a text box. Here's my
VB
Option Explicit On 'Default ImportsImports SystemImports System.DataImports System.DeploymentImports System.DrawingImports System.Windows.FormsImports System.Xml 'Custom ImportsImports SpeechLibImports SIMPLEAUDIOLib Public Class frmMain 'Dimension variables Dim WithEvents RecoContext As SpInProcRecoContext 'The Main Recognition Object Used throughout the whole program.[code].....
I am pretty new to multi-threading in general and I would like to know how can I lock a shared integer variable to not be accessed by other threads while it is read/updated by an other thread.When I try do do SyncLock myInteger, I get that error : Error 6 'SyncLock' operand cannot be of type 'Integer' because 'Integer' is not a reference type.
Here a simplified example of what I mean
Private Shared myInteger As Integer Private Sub MySub() SyncLock myInteger ' This does not work ' read/write a new value to myInteger End SyncLock End Sub
MySub is called by multiple instances of the class, and running in multiple threads?
I'm looking at a VB.NET class (that I didn't write) that is declared "MustInherit" (abstract in C#, I believe) that has three methods, all of which are defined as "shared" (static in C#). There are no properties or fields in the class - only the three methods. From an OO perspective, does this make any sense?
My thinking is no, because by making it MustInherit, you're essentially saying you can't create an instance of this class - you must inherit from it and create an instance of the derived class. But since all the methods are shared, you'll never actually create an instance of the parent class anyway, so the "MustInherit" does no good. You might as well not mark it MustInherit and just inherit from it whenever you want.
I have a problem with inherited classes. Have a look at the following VB.NET 2.0 / VS 2005 code:
MustInherit Class templateclass Public Shared x As String End Class Class child1
[code]....
The templateclass has a shared variable x which is of course inherited by the child classes. But I wonder that all child classes share only one x! Until now I thought that shared variables are only shared among the instances of a class, not among all childs. This is very annoying because I have a base class which I need in two slightly different versions and they should not "share the shared" variables. And because the classes have a lot of shared variables, shadowing each in the childs would be very..
Public Sub Share() Dim managementClass As New ManagementClass("Win32_Share") Dim inParams As ManagementBaseObject = managementClass.GetMethodParameters("Create")
I have the following code: Public Class TestClass Public Sub Main() If theGlobal IsNot Nothing Then Throw New Exception("What gives!") End Sub Private Shared theGlobal As Object = Nothing [Code] ..... Why is theGlobal object NOT Nothing?
As the question states, can a shared method of an object be multithreaded? I don't quite having threading down in my skillset, otherwise I would test myself. On the other hand, I am involved in designing class that could be part of a multithreaded application in VB.Net.
I'm doing some LINQ which requires a custom comparer, so I created a new class implementing IEqualityComparer. However, when I use it, I have to create an instance of it each time.
Dim oldListOnly = oldList.Except(newList, New MyEqualityComparer) Dim newListOnly = newList.Except(oldList, New MyEqualityComparer)
I may be misunderstanding how .NET works, but it seems wasteful to create a new comparer each time. I really just want one instance (the equivalent of static in C++/C#).So I tried creating a "static" class, which in vb.net is a module. But got an 'Implements' not valid in Modules error.I then tried making the Equals and GetHashCode function shared methods on my class, but got this error: Methods that implement interface members cannot be declared 'Shared'.how to accomplish my goal here?