|
Thanks. That did the trick. How did you find this out?
john.
|
|
|
|
|
I have a ASP.NET application that needs to check for changes on the client side for a file. This file is constantly being changed and I need , that everytime the file is changed to open the file and check for new data to transmit to my ASP.NET app, so what do you advise ?
Building a dotnet service(it's possible wihout com interop ?) that's is constantly checking the file on the filesystem,or using some javascript function using the filesystem object and a timer to check for changes of the file, or some other way ?
Thanks in advance,
Joao Vaz
And if your dream is to care for your family, to put food on the table, to provide them with an education and a good home, then maybe suffering through an endless, pointless, boring job will seem to have purpose. And you will realize how even a rock can change the world, simply by remaining obstinately stationary.-Shog9
Remember just because a good thing comes to an end, doesn't mean that the next one can't be better.-Chris Meech
|
|
|
|
|
I am not aware of such stuff inside the .NET CLR.
You've got dedicated functions in the WIN32 File I/O APIs, including ReadDirectoryChangesW , etc.
Now this require WIN32 interop.
Adding COM or ActiveX interfaces would allow you to execute it from Javascript code.
|
|
|
|
|
.S.Rod. wrote:
I am not aware of such stuff inside the .NET CLR.
You've got dedicated functions in the WIN32 File I/O APIs, including ReadDirectoryChangesW, etc.
Thanks , I resorted to another technique , using win32 api on one client side app , and recording the data on the database on the Server side.
.S.Rod. wrote:
Now this require WIN32 interop.
Oh well, perphaps on the 2nd version, they'll put the rest of the windows api on it (insert dreamer icon here...)
Cheers,Joao Vaz
And if your dream is to care for your family, to put food on the table, to provide them with an education and a good home, then maybe suffering through an endless, pointless, boring job will seem to have purpose. And you will realize how even a rock can change the world, simply by remaining obstinately stationary.-Shog9
Remember just because a good thing comes to an end, doesn't mean that the next one can't be better.-Chris Meech
|
|
|
|
|
This class implements the equivelent Win API calls to monitor a file, or change in a directory.
System.IO.FileSystemWatcher
Quote from a clever bloke :
"I know not with what weapons World War III will be fought, but World War IV will be fought with sticks and stones." - Albert Einstein
|
|
|
|
|
Yo!
|
|
|
|
|
I'm guessing that the kitchen sink is in there somewhere. The .NET class lib seems to have everything, its just a case of finding it.
Quote from a clever bloke :
"I know not with what weapons World War III will be fought, but World War IV will be fought with sticks and stones." - Albert Einstein
|
|
|
|
|
What we are lacking is a Find option in Anakrino! (unfortunately, I have tried to recompile this masterpiece but couldn't download everything required to do so).
|
|
|
|
|
Could have a look at System.IO.FileSystemWatcher
Quote from a clever bloke :
"I know not with what weapons World War III will be fought, but World War IV will be fought with sticks and stones." - Albert Einstein
|
|
|
|
|
Giles wrote:
Could have a look at System.IO.FileSystemWatcher
This resolves the things on the server-side, and since I already resolved the client-side problem
Thanks
Cheers,Joao Vaz
And if your dream is to care for your family, to put food on the table, to provide them with an education and a good home, then maybe suffering through an endless, pointless, boring job will seem to have purpose. And you will realize how even a rock can change the world, simply by remaining obstinately stationary.-Shog9
Remember just because a good thing comes to an end, doesn't mean that the next one can't be better.-Chris Meech
|
|
|
|
|
This may be totally wrong forum, but I couldn't find a general forum for Visual Studio .NET.
Is there a way to put my own .NET user controls in the IDE toolbox and then just drag and drop them onto my forms? That would be very nice indeed.
--
"It is amazing how f-ing crazy I really am."
|
|
|
|
|
Right click the toolbox, select Customize toolbox..., browse for your assembly, and there . Magic! All Component derived classes will be on the toolbox, ready to drag onto the form. NOTE: youre class MUST have a default constructor.
MyDUMeter: a .NET DUMeter clone
|
|
|
|
|
Sweet!
I didn't spot the Browse button before. This is excellent! VS.NET is even smart enough to not lock the assembly. (The control I'm working on is in the same project, thus it's possible to recompile/link)
Thanks for your reply!
--
"It is amazing how f-ing crazy I really am."
|
|
|
|
|
Jörgen Sigvardsson wrote:
VS.NET is even smart enough to not lock the assembly. (The control I'm working on is in the same project, thus it's possible to recompile/link)
It would be easier to click (in project), Add, Inherited UserControl and select the control. Also gives you more control over the UI.
MyDUMeter: a .NET DUMeter clone
|
|
|
|
|
Jörgen Sigvardsson wrote:
Is there a way to put my own .NET user controls in the IDE toolbox and then just drag and drop them onto my forms? That would be very nice indeed.
In the next version of VS.NET (2003) it gets easier. Tt has a tab dedicated to user controls in your project so you can just drag/drop from there. The functionality is there in VS.NET 2002 (user controls are at the very bottom of the Windows Forms tab), but it is a bit buggy in that sometimes it doesn't show the controls.
I'm not sure if either version will show user controls that are contained in other projects than the one you are working on.
James
"It is self repeating, of unknown pattern"
Data - Star Trek: The Next Generation
|
|
|
|
|
James T. Johnson wrote:
In the next version of VS.NET (2003) it gets easier. Tt has a tab dedicated to user controls in your project so you can just drag/drop from there.
Heh, that's how I imagined it should work! I think I've dragged pretty much everything in VS.NET that's detachable into that damn toolbox. Thanks to leppie, I sorted it out though. I did manage at one point to drag the code(!?) of the control into the toolbox.
James T. Johnson wrote:
I'm not sure if either version will show user controls that are contained in other projects than the one you are working on.
It would be nice if it would work like many Java IDE's: You register a user control as "reusable" and it'll be in the IDE for future use. Preferrably you can label it with a category tag such as "Textboxes", "Listviews", etc. And of course, the IDE should report what assemblies these controls live in so you don't have to search for them all night just before shipment day..
I often find myself reimplementing wheels over and over again. I think this would save me a couple of hours per project. This was possible in VC6 with ActiveX controls, I see no reason why it couldn't be the same in VS.NET with .NET controls.
--
"And God said, Let us make man in our image"
|
|
|
|
|
How to add new Components to Process.Container property?
I get a null object reference error when using Process.Container.Add().
|
|
|
|
|
Hi all,
Does anyone have a nifty workaround for the fact that a class that uses XML Serialisation is required to have a default constructor?
I've got a class AuthorInfo, that has a readonly ID variable, that is set in the constructor:
//C# Class...
public class AuthorInfo
{
public readonly m_ID;
public AuthorInfo( uint ID )
{
m_ID = ID;
...
...
}
...
...
}
I'd like this class to be serialised to XML but as noted in MSDN:
"A class must have a default constructor to be serialized by XmlSerializer"
I don't really want to create a default constructor for this class, as I'd like to enforce the fact that it can't be created without an ID being supplied.
Can anyone think of a good way to do this? The only thing I can think of off the top of my head is to create an internal helper class that just deals with Serialisaton. That seems a bit messy to me, and would be awkward to use with Web Services (which is what I'm doing).
Any suggestions/comments appreciated...
TIA,
Pete
|
|
|
|
|
You could use a Static Constructor to initialise an internal static countID variable to zero, that just gets incremented and stored in a non-static member as a new ID in the default constructor. Other than that and what relationship the ID has to other data its a little difficult to say.
Quote from a clever bloke :
"I know not with what weapons World War III will be fought, but World War IV will be fought with sticks and stones." - Albert Einstein
|
|
|
|
|
Hi all,
in my C# app I have to call a function in a legacy Win32 DLL. This function fills a complex struct. Unfortunately, I don't know how to port the data structure to .NET. Here's a simple example:
public class Test
{
[StructLayout(LayoutKind.Sequential)]
public class Test
{
int i;
}
[StructLayout(LayoutKind.Sequential)]
public class Test2
{
[MarshalAs(UnmanagedType.ByValArray, SizeConst=10)]
public Test1[] tests;
}
public Test()
{
int size = Marshal.SizeOf(typeof(Test2));
}
} In the constructor, Marshal.SizeOf throws the exception Type Test2 can not be marshaled as an unmanaged structure; no meaningful size or offset can be computed.
How do I marshal fixed size arrays of struct properly?
Thanks in advance.
Regards
Thomas
Disclaimer: Because of heavy processing requirements, we are currently using some of your unused brain capacity for backup processing. Please ignore any hallucinations, voices or unusual dreams you may experience. Please avoid concentration-intensive tasks until further notice. Thank you.
|
|
|
|
|
First, those need to be struct s. Second, you may need to specify the Test1 struct size, not just the number of elements. If you expect a variable number of elements, you should look at the SizeParam(?) property of the MarshalAsAttribute to specify the index of a member that specifies the number of elements in the struct array.
Reminiscent of my younger years...
10 LOAD "SCISSORS"
20 RUN
|
|
|
|
|
Heath Stewart wrote:
First, those need to be structs.
Ok, but it doesn't help at the moment.
Heath Stewart wrote:
Second, you may need to specify the Test1 struct size, not just the number of elements. If you expect a variable number of elements, you should look at the SizeParam(?) property of the MarshalAsAttribute to specify the index of a member that specifies the number of elements in the struct array.
It's fixed sized, therefore I used SizeConst .
Thanks anyway.
Regards
Thomas
Disclaimer: Because of heavy processing requirements, we are currently using some of your unused brain capacity for backup processing. Please ignore any hallucinations, voices or unusual dreams you may experience. Please avoid concentration-intensive tasks until further notice. Thank you.
|
|
|
|
|
I had the same problem and the only way is to Marshal it as a byte[] array and not the encapsulating class. If the class has more members, things become a bit more difficult.
MyDUMeter: a .NET DUMeter clone
|
|
|
|
|
leppie wrote:
If the class has more members, things become a bit more difficult.
In fact, the structurs are cascaded about three levels
Regards
Thomas
Disclaimer: Because of heavy processing requirements, we are currently using some of your unused brain capacity for backup processing. Please ignore any hallucinations, voices or unusual dreams you may experience. Please avoid concentration-intensive tasks until further notice. Thank you.
|
|
|
|
|
I think it is time for a Custom Marshaller. You need to implement this interface.
public interface ICustomMarshaler
{
public void CleanUpManagedData(object ManagedObj);
public void CleanUpNativeData(IntPtr pNativeData);
public int GetNativeDataSize();
public IntPtr MarshalManagedToNative(object ManagedObj);
public object MarshalNativeToManaged(IntPtr pNativeData);
}
And set MarshalAs(UnmanagedType.CustomMarshaler) on the class. From there you should havenough control to marshal just about anything. Note: You can now make classes without Layout.
Cheers
MyDUMeter: a .NET DUMeter clone
|
|
|
|