|
Having one class with static fields is good. Just make shure that all class'es are in the same namespace.
Q:What does the derived class in C# tell to it's parent?
A:All your base are belong to us!
|
|
|
|
|
The classes are in different namespaces. I thought adding a reference to the individual namespaces would allow me access to the class from anywhere. Is that not true?
|
|
|
|
|
By adding refrence you mean:
using YourNameSpace; ?
the using statment is only aplied to one file if it is placed outside the namespace {} block!
Q:What does the derived class in C# tell to it's parent?
A:All your base are belong to us!
|
|
|
|
|
Thanks for replying, but I'm still lost. I'm trying to load the values into a static structure now. The values are loaded, but when I try to access them from the watchwindow, I get the "out of score" error.
Pardon me, but here is the code. Can you tell me what's wrong?
<font size = 1>using System;
using System;
using AMS.Profile;
namespace MySpace
{
public class AppStartUp
{
public AppStartUp()
{
}
public struct AppDefaults
{
public static string server = "";
public static string dataBase = "";
public static string adminPath = "c:\vsdevelop";
public static string sqlConn = "";
}
public static void SetAppDefaults()
{
Registry profile = new Registry();
AppDefaults.server = profile.GetValue("DBSettings","DBServer","");
AppDefaults.dataBase = profile.GetValue("DBSettings","DBName","");
AppDefaults.adminPath = "c:\vsdevelop";
AppDefaults.sqlConn = "SERVER=" + AppDefaults.server.ToUpper().Trim() + ";UID=uid; PWD=pwd;DATABASE=database";
}
public static void LoadProgramSettings()
{
SetAppDefaults();
}
}
}
</code>
|
|
|
|
|
You are trying to set a value to a field that is inside the structure, onyl specifying the class ...
And even so I think you must declare the structure as static too ...
but I really don't know why you are using a structure in the above code (dump it)...
Q:What does the derived class in C# tell to it's parent?
A:All your base are belong to us!
|
|
|
|
|
Thanks for your help. I've finally been able to get it to work.
Dump it in favor of what? classes.
There has been some discussion on speed using structures for static storage. It seems that most favor the structure. You reasons?
|
|
|
|
|
It has no sense in using a structure like that.
There is no need for you to "group" fields inside a structure, becouse you already have them inside your class.
Maybe you should read some article that covers the OO aproach to desigening programms
Q:What does the derived class in C# tell to it's parent?
A:All your base are belong to us!
|
|
|
|
|
To add, you may want to consider caching the settings instead of reading them from the registry each time. If they can be changed throughout your application, then have additional methods on this class that can reset some flag so that the values would be read and cached again.
Also, use a private constructor so that callers can't instantiate this class since that would serve no purpose. In .NET 2.0, you don't need to do this if you use static classes (prefix your class declaration with static ). This will be out early next year, just FYI.
Microsoft MVP, Visual C#
My Articles
|
|
|
|
|
Hello:
Thanks for responding. I'm loading the values into the global properties one time at application startup. In that instance, would caching the values give me any benefit?
|
|
|
|
|
Well first, you need to expose them. You're simply setting them on a struct, which goes out of scope so they can never be read again. While I don't particularly find this approach to settings at all attractive from an OO standpoint, the least you can do is provide static properties on this class using the guidelines I outlined. What you're doing right now won't work at all because the struct simply goes out of scope like in the rest of your thread the other replier mentioned.
Microsoft MVP, Visual C#
My Articles
|
|
|
|
|
Hi, I think in a near time you'll hate me, I'm porting code from C to C#, I've this structure define in unrar.h
<br />
struct RAROpenArchiveDataEx<br />
{<br />
char *ArcName;<br />
wchar_t *ArcNameW;<br />
unsigned int OpenMode;<br />
unsigned int OpenResult;<br />
char *CmtBuf;<br />
unsigned int CmtBufSize;<br />
unsigned int CmtSize;<br />
unsigned int CmtState;<br />
unsigned int Flags;<br />
unsigned int Reserved[32];<br />
};<br />
and should be used by unrar.dll's function
HANDLE PASCAL RAROpenArchiveEx(struct RAROpenArchiveDataEx *ArchiveData);
I tryied using mashalling to mirror dll's structure in C#, but invoking RAROpenArchiveEx it hangs up, supposing due to the pointer to ArchiveData....
How should I go on? I don't know how to convert
unsigned int Reserved[32];
wchar_t *ArcNameW;
thanks....
|
|
|
|
|
Paolo Ponzano wrote:
Hi, I think in a near time you'll hate me, I'm porting code from C to C#, I've this structure define in unrar.h
I think in a near time you'll hate me, but why aren't you using managed C++? Simply write a bunch of wrapper classes, compile with /CLR, and you're done!
Due to technical difficulties my previous signature, "I see dump people" will be off until further notice. Too many people were thinking I was talking about them...
|
|
|
|
|
I don't know...... I started with C# and since I also have applied a lot of improvement I don't want to redo all again =)
May I only do the unpacking routine in C++ managed and all the rest in C#?
|
|
|
|
|
Thats the idea
|
|
|
|
|
but have I to create a new project and write a dll that will be invoked? or what? can I use C++ code in a C# project? I don't think so.....and I don't also how to let C# to use C++ code...thanks again
Paolo
|
|
|
|
|
It should look something like this:
[StructLayout(LayoutKind.Sequential)]
public struct RAROpenArchiveDataEx
{
[MarshalAs(UnmanagedType.LPStr)] string ArcName;
[MarshalAs(UnmanagedType.LPWStr)] string ArcNameW;
[MarshalAs(UnmanagedType.U4)] int OpenMode;
[MarshalAs(UnmanagedType.U4)] int OpenResult;
[MarshalAs(UnmanagedType.LPStr)] string CmtBuf;
[MarshalAs(UnmanagedType.U4)] int CmtBufSize;
[MarshalAs(UnmanagedType.U4)] int CmtSize;
[MarshalAs(UnmanagedType.U4)] int CmtState;
[MarshalAs(UnmanagedType.U4)] int Flags;
[MarshalAs(UnmanagedType.ByValArray, SizeConst=32)] int[] Reserved;
}
[DllImport("rar32.dll")]
private static extern IntPtr RAROpenArchiveEx(ref RAROpenArchiveDataEx data);
Microsoft MVP, Visual C#
My Articles
|
|
|
|
|
thanks a lot... but how I declare in my method the structure??
this way -> RarOpenArchiveDataEx data = new RarOpenArchiveDataEx()???
or since in dll's function RAROpenArchiveEx I've a ref to that structure I need to use something I don't know?
thanks again
Paolo
|
|
|
|
|
Create an instance of your struct and pass it to your method:
RAROpenArchiveDataEx data = new RAROpenArchiveDataEx();
IntPtr retVal = RAROpenArchiveEx(ref data);
Microsoft MVP, Visual C#
My Articles
|
|
|
|
|
|
Hello!
I need some suggestions, i need a control that allows me to print data from a dataset in a way similar to the datagrid (columnheaders and so on), but the user should not be able to write anywhere in the control, and when pressed on it should only mark the whole line/row.. not the clicked post as in datagrids.. can this be solved with datagrids or are there another component that can fix this?
|
|
|
|
|
I think if you simply set ReadOnly property of DataGrid to true you will get what you want.
Mazy
"I think that only daring speculation can lead us further and not accumulation of facts." - Albert Einstein
|
|
|
|
|
For physical printing of the MS DataGrid, you can use ComponentOne's Preview.NET control. If you need a new grid component, ComponentOne's FlexGrid.NET will allow you to set it up so that when a user clicks in the grid, the entire corresponding row is selected. Our FlexGrid.NET component has printing functionality also. For more information, please visit http://www.componentone.com[^].
Suelinda W
Customer Engagement, ComponentOne LLC
|
|
|
|
|
hai there,
in my project i need to read all ip address which is avilable in my local network. after that i need to control the host machine(remote desktop sharing).Appart that i need to read some data from that the host machine hold.
is it possible to read the ip table which is avilable in server from a client machine ?
sreejith
hai, feel free to contact
Sreejith SS Nair
|
|
|
|
|
sreejith ss nair wrote:
read the ip table which is avilable in server
|
|
|
|
|
what you mean by that
|
|
|
|