I'm writing a WCF-Service and I split up my service class to multiple partial class files, so every ServiceContract-Implementation gets its own file. I have one file however that should contain e.g. members that are used by every partial class file such as a logger. The service is hosted with IIS 7 if this matters in any way.
[Code]....
The code compiles fine, but at runtime I get an BC30451: The name m_Log is not declared Error (Don't know the exact words for it. I get a german message ;) ). I don't think it has something to do with the type of m_Log or a depending assembly because I get the same error if i try this with a String. What am I doing wrong? How can I make this work? Edit: I was trying the same thing in a simple console application without any problems. :(
I've read that modules are basically shared classes. For a module though, you can call a method directly without prefixing the module name. So I can do this: methodTest("abc", mod1Enum.enum2)But for a class with shared members I have to fully qualify the method call, and in this case fully qualify the enum:[code]In our conversion from VB6 to .NET the need to fully qualify all calls like this might be an argument for us to bring our VB6 modules over as modules instead of converting them to classes.
At the moment I'm trying to create a kind of model in vb.net which can be used to create/fetch database entrys.
I created a main class Model with a shared function to fetch the datasets, e.g. Model.find(). Now I'd like to create Classes which inherit the main Model-Class, e.g. a separate one for users: UserModel.find() => "SELECT * FROM users".
What I need now is to find a way to tell the Class which table it should use. I thought about an abstract String "table" which is a constant in each "child-model", but how could this be implemented as it's not possible to override shared members?
Edit: Maybe this will make it a little clearer what I mean:
Public Class Model Public Shared _controller As Controller Public Shared table As String
[Code].....
So I want a shared method which finds all database entries and gives back an array of instances of its own type, e.g. Model(). That's why I wanted to keep the find-method shared and not bound to an instance.
I have extended an Entity Framework 4 entity class with a calculated property in a partial class. This member is not available on the client to which the entities are exposed via WCF RIA Services.when using C# appears to be changing the extension of the partial class file from .cs to .shared.cs. I tried this with my VB.Net solution (.vb to .shared.vb) and got a long list of errors. I believe what happened is that the partial class lost its association with the entity on the client - it inherited from object rather than EntityObject.
My best guess is that this is related to the way that VB.Net handles namespaces.Each project has a 'Root Namespace' which is prepended to anything that is defined within a code file. C# has a 'Default Namespace'which is the namespace into which new types are placed by default - via a namespace statement within the file.The partial class is probably having the client namespace prepended to it which puts it into a different namespace than the entity with which it is associated on the server.Is there any means of extending an entity in such a way that those extensions are available on the client via WCF RIA Services and VB.Net?
Why does intellesense show shared members? e.g:Dim x as doublex.epsi 'Epsilon will show up as a valid member in intellesenseIs there a way to change this behavior?
I have the follow VB.NET class definition:<Serializable()> Partial Public Class Customers End Class
Inside another file I have the same thing (with different methods and variables of course). When I compile, I get the following error:Attribute 'SerializableAttribute' cannot be applied multiple times.The error is pretty self explanatory. My question is though, if I just mark the one class as Serializable(), can I assume the entire class with be marked as serializable()? In other words, Do I only need the serializable() tag in 1 spot in the class?
I was looking on the interweb to see if there were any good examples on how to initialize shared members within a class while still initializing instance variables.[code]How do I initialize both instance and shared members without re-initializing the shared members every time an object is created from a class?
I have faced with a situation in VB.NET and C# (.NET2) with the visibility of the static/shared members. It seems to me a little strange in VB.NET:
public class A { private static A instance; public static A Instance { get { return instance; } } public string Name { get { } }} [Code] ..... Shared member behaves like a class public one I can repeat it to infinite..
We have a big Form class that we like to split into peaces using partial class approach That could be done by manually modifying a project file, and adding MainFormPN.vb entry
The issue with this approach is when double click on this item in VS2008 IDE it shows new empty form, not MainForm UI. It looks like VS2008 does not support multiple partial classes for a Forms.
I'm still learning so this might be completely wrong. I have built a multi-user web application for internal purposes. I have split my code up to make it more manageable and have run into some problems. I suspect that I have done something very silly!
I have a class in a separate file (quoteStatus.vb) in App_Code here it is:
Imports Microsoft.VisualBasic Imports System.Data.SqlClient Imports System.Data Public Class quoteStatusHelper
[Code]...
This seems really wrong, as the value seems to be held in the partial class after the first run. So if I have two users accessing the class the public shared dim is changed for both users! There must be a better way to do this. I have looked everywhere and I'm more confused now than when I started off..How can I make QuoteStatus in the partial class unique to every user and access it from my code.
I took over an ASP.NET application and have found this throughout several classes in the application. The programmers before defined several shared/static variables that act as "complex enums" throughout the application. As a fairly new programmer, it doesn't look like best practice.
Here is an example: Public Shared SecureCommentsWrite As New Task("Secure Comments Write") Public Shared SecureCommentsRead As New Task("Secure Comments Read") Public Shared EditEmergencyContact As New Task("Edit Emergency Contact") Public Shared DisplayPersonalReferences As New Task("Display Personal References") Public Shared EditPersonalReferences As New Task("Edit Personal References")
The constructor takes the description, then loads the ID key from the database using a stored procedure (the database is SQL Server.) This seems like a good idea since we deploy this application to multiple databases and want to ensure that we load the ID key that's in that database in case it changes. However, since there are literally hundreds of these in the application, the first load takes a while.
So I did tons and tons of work trying to make an interface for a common set of classes. The idea was to make an interface that each class could use within the set, but ultimately each class is different. Turns out interfaces do not like shared members. What I tried:
Public Interface ISomeInterface Shared Property Meta() as Object End Interface Public Class A Implements ISomeInterface
[Code]...
Obviously, had I done my homework on this, I would have known that shared members can't be use in interfaces. Should I just leave the individual classes completely responsible for handling its shared members? Is there another way to keep coupling down to a minimum with shared members? Theres about 20 something or so classes that will implement a single interface.
I was looking on the interweb to see if there were any good examples on how to initialize shared members within a class while still initializing instance variables. I did find an expression that might fit to the answer:
[code]...
How do I initialize both instance and shared members without re-initializing the shared members every time an object is created from a class? Thanks!
We are using T4 to generate our .aspx and .vb files. Everything works well - but we often have to customize behavior on the pages. However, we also occasionally have to regenerate pages - which has the potential to wipe out work which would otherwise still be valid. I would like a setup like this:
Default.aspx 'which would contain the controls Default.aspx.vb 'which would bind, load and save data Default.behaviour.vb '(or something like that) - which would store the behavior
With both the pages being able to reference the controls. Is that at all possible? [Code]
There is an older version of the software which works fine on all of our deployment platforms, but the version I am trying to push out is working fine on 32-bit desktop installations, but is crashing-and-burning when it attempts to access Crystal Reports and Informix installed DLLs on a 64-bit machine, running terminal server sessions (yeah, I know, could I change anything more about the deployment platform?)One of the suggested avenues of investigation was changing the solution platform from "Any CPU" to x86.On attempting to do this, Visual Studio seems to stop being able to connect the partial classes constructed by XAML objects, with objects declaring that they have no "InitializeComponent" methods, and then failing on down the line until I reach the maximum number of errors.
Oddly, changing the solution platform, and then rebuilding in Expression Blend compiles just fine. Changing the platform back to AnyCPU makes the problem disappear. All projects have compile and debug configurations set to Active. I can't see any reason why simply changing the targeted platform would stop the XAML from generating partial classes Okay, it seems to be that there are some external DLLs to the project, and that those are the cause of what I'd call the first-level compilation failure, as they don't seem to contain any classes once the target platform has switched.In VS2008, this causes the cascading failure of absolutely nothing working at all, as described above, but at one point I somehow managed to import the project to VS2010 with only those errors in place (missing classes, etc.), without the rest of the project imploding.I'm now working on reconstructing those classes from those DLLs, and hopefully will be able to get together a project that will compile on multiple target platforms by the end of the day.
In my never ending search for more knowledge, I have come across Partial Classes. I was wondering if some of the kind people who actually understand the uses could explain some of them to me. Now I know that when we create a form that we actually create a partial class which the generator rewrites when we add a control or change a property at design-time, and this allows us not to have to worry about setting up the controls ourselves.
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.
Currently, I have a solution that contains two projects (ASP.net websites, FWIW). If I create a class in Project1, how do I expose it to Project2? Is it automatically available to Project2 because they are in the same solution? Or do I need to do something special to make the connection?
[code]Now how do i do this in c#. I know there is not handles clause in c# so i need some function that is called and assign the event handlers there. However since its a shared class there is no constructor i must put it somewhere outside of a function.
I have a program with a base class and classes that inherit the base. A Windows Form will call a function of each child class which raises an event from the base class. The function call to the first child class works fine: the event is raised for the first child class.
I have a base class with several derived classes. I want all of my derived classes to have the same Public Shared (static) method with their own implementation. How do I do this? Is it even possible?
If I have a 'Shared' object defined in the App_Code folder; is that object shared amongst all users/visitors of my website? Or is it shared on a per-user basis?I don't know if that makes sense or not; but I've got a puzzle/solver I'd written earlier that I'm trying to incorporate into a simple ASP.Net site. It's probably poorly written, but I'd used a Shared boolean to determine if a solution had been found. The code works, now as an ASP.NET site, but if two visitors to my site were both validating their puzzle at the same time, would they both be accessing the same boolean?
Is it considered an acceptable practice to use Modules instead of Classes with Shared member functions in VB.Net?I tend to avoid Modules, because they feel like left over remains from VB6 and don't really seem to fit in anymore. On the other hand, there doesn't seem to be much difference between using a Module and a Class with only Shared members.