|
Um, why don't you tell us what problems occured. Exception messages, incorrect behavior versus expected behavior, and stuff like that. Ever try to provide support to someone saying only "I have a problem"?
Microsoft MVP, Visual C#
My Articles
|
|
|
|
|
First, I don't know the correct way to enumerate network interfaces on a computer, so I used existing performance counters, and calculate the network speed in a brute forcing manner. One problem is that a "MS TCP loopback interface" exists on every computer.
I gave my program to some friends, and they told me it won't work with dial up network and some ADSL network, so I don't know the exact exception message.
|
|
|
|
|
Then why don't you ask them.
Something else you should look into is WMI, which uses the System.Management namespace for classes in .NET. There is a Win32_NetworkAdapter WMI class that allows you to get all the information for adapters. Even my WAN interfaces show up when querying the class for instances. You can use the mgmtclassgen.exe utility that comes with the .NET Framework SDK to generate a class file (not an assembly like the interop utilities do), or download and install the WMI Extensions for Visual Studio .NET 2002[^], which allows you to browse all the classes and even generate source files in your project.
For more information, look up the System.Management namespace in your help documentation for the .NET Framework SDK (or the Visual Studio Combined Collection), or read the following article, System.Management Lets You Take Advantage of WMI APIs within Managed Code[^].
Microsoft MVP, Visual C#
My Articles
|
|
|
|
|
|
Does anyone know what's the best way to determine if a web service is available before you consume it each time?? For example, if anapplication can be used when it is either connected or disconnected. When it is disconnected, what error handling should be done? please show me a sample code.
Thank you.
Boo
|
|
|
|
|
When instantiating the proxy class in your local app and calling a method, just put it in a try-catch block and catch exceptions. It is not the proxy's responsibility to connect the client machine, merely to marshal data and send it across the wire. An exception will be thrown when you instantiate the proxy class.
Microsoft MVP, Visual C#
My Articles
|
|
|
|
|
I wanted to make sure the methods are available before calling any.
This is what I did, do you think it's good enough?
wsABC = new SomeWebService.Service();
try
{
WebRequest myRequest = WebRequest.Create(wsABC.Url);
WebResponse myResponse = myRequest.GetResponse();
}
catch (WebException ex)
{
if(ex.Status != WebExceptionStatus.Success)
{
String ExMsg="Exception Code : "+ ex.Status.ToString() + "\n" + "Exception Description : "+ ex.Message);
MessageBox.Show(ExMsg);
}
}
Thanks,
Boo
|
|
|
|
|
You wouldn't even necessarily have to display an error if all you were doing is checking the connection, although you should always wrap your remote requests in a try-catch in case an error does happen. You should display a more user-friendly error, though. Taking this into account, why even bother to check the connection before hand? Just run the method. If it doesn't work, you display an error. Even if you were connected and for some reason the web service can't respond, doesn't respond correctly, or a myriad of other errors, you still want to display an error (or react accordingly).
Microsoft MVP, Visual C#
My Articles
|
|
|
|
|
Oh, that was just a sample I'm working on. I don't think I'll show the error in the actual app. and I do plan on using the try and catch each time calling the methods.
The reason I wanted to make sure there is a connection is that if the app is used offline, it does different thing and won't allow to call any of the webservice's methods anymore.
As far as handling other errors from the webservices, it's a different issue.
Thank you for your advice. =)
Boo
|
|
|
|
|
hi,
i have a datagrid bound on a dataset which i fill whith a method running in a threadpool. showed simple:
<br />
private void begin(object sender, System.EventArgs e)<br />
{<br />
ThreadPool.QueueUserWorkItem( new WaitCallback( work ) );<br />
}<br />
<br />
public void work( object n )<br />
{<br />
for ( int i = 0; i < 20; i++)<br />
{<br />
lock(this)<br />
{<br />
DataLayer.add( i );<br />
}<br />
}<br />
}<br />
after 3 items or when the thread ends the programm hangs or im getting a exeption on Appliaction.Run(). how can i do that without a programm crash?
i have read on MSDN DataSet doc "You must synchronize any write operations" but it seems the to be the datagrid? i also have tryed a workaround whit delegates, events and a static adding but same problems here.
i can't find the problem, i think i know not enough about this threadsave stuff. any idea how to do that, or is it simply not possible to fill a datagrid from a thread?
|
|
|
|
|
Two things, you should synchronize any writes by either using the lock keyword in C# (type it in your help index to learn more about it) or some other class in System.Thread (lock aliases the Monitor class).
Second, when you modify the UI in most cases, you should invoke the method on the control using Invoke , which is inheritted by all controls from the Control class. There's a nift InvokeRequired that you can use to determine if you can call the method directly or if you need to have the control invoke it from its creation thread.
Every control is created on a thread and all changes to that control (at least, that which would be reflected in the underlying native Windows control) need to be invoked on that thread.
Read the docs for the Control.Invoke and Control.InvokeRequired in the .NET Framework SDK for more information and examples of how to use them.
Microsoft MVP, Visual C#
My Articles
|
|
|
|
|
lock + begininvoke works great now, thanks a lot!
unbelivable that the solution is so easy...
|
|
|
|
|
Hi,
I have the next case :
string s1 = "00001The Code Project Struct";
Also,
struct Datax
{
public string Code;
public string Desc;
public string Referencia;
}
It's posible casting "s1" inside "struct" Datax???????
Sorry, for my english.
Saludos.
Rbarzallo
|
|
|
|
|
You want to turn this one string into an instance of this struct ? How do you know which bit belongs to which string ? It's not going to happen for you automatically, you need to write some string mashing code.
Christian
I have drunk the cool-aid and found it wan and bitter. - Chris Maunder
|
|
|
|
|
|
I am using IProvideTaskPage::GetPage() and want to incorporate those pages as well as my own in a Custom Task Wizard written in C#. How would one implement this in C#? CPropertyPage && CPropertySheet worked well in MFC.
Sincerely,
-Ron
|
|
|
|
|
RNEELY wrote:
Where is CPropertyPage?
TabControl
Mazy
You're face to face,
With the man who sold the world - David Bowie
|
|
|
|
|
Thanks Mazdak. The TabControl seems to provide the same look.
IProvideTaskPage::GetPage() returns an array of HPROPSHEETPAGE.
How could I use that array with the TabControl?
Ziggy played guitar. Man could he play guitar.
Sincerely,
-Ron
|
|
|
|
|
Did you read the docs for TabControl ? There's a TabPages collection property that has a collection of TabPage instances. Sub-class the TabPage if you want, but you don't need to. The TabControl is fully designable in VS.NET as well. Just try it out.
Microsoft MVP, Visual C#
My Articles
|
|
|
|
|
I was wondering how to display a datagrid that has some of the values hyperlinked and the rest not hyperlinked. Ex....I have a single column that displays numbers. If the result is 10 or above, then apply the hyperlink and all results 9 and below, do not apply hyperlink. I am very mucha beginner at this whole .NET stuff, so dummy it up if possible or provide a code snippit.
Thanks a lot
Skooter
|
|
|
|
|
First of all, this should be asked in the ASP.NET forum. But I'll answer anyway since ASP.NET apps can be written in C# of course.
You should handle the DataGrid.ItemCreated event. The handler arguments will let you access the Item property that will - in your case - be a DataRowView . Cast it to that class and see what the number value is. Then you can dedice whether to use a HyperLink control or not (or always use a HyperLink control and just set certain properties to disable the actual linking).
For an example of how to do this, see Summary Rows in DataGrid Controls[^]. It's not exactly what you're after, but should give you some idea of how to handle each item as the DataGrid control creates it in the Page so that you can override properties or even add controls to the table cell (like the HyperLink control).
Microsoft MVP, Visual C#
My Articles
|
|
|
|
|
im new to C# , so im not really sure of my options. i dont want to use databases , but i want something similar. If i use files , then the problem comes when deleting a record.
my main aim is that i should be able to retrieve records from a file , make all changes and then dump it into a file.
can i use datasets and then dump the final thing into the o/p file ?
or are there other options ? like XML , message queues etc ? if so then i'd appreciate if you could guide me !
|
|
|
|
|
Ashwin C wrote:
like XML
Exactly. Look XmlDataDocument in MSDN. You can populate DataSet with it and do your jobs and. change back to file.
Mazy
You're face to face,
With the man who sold the world - David Bowie
|
|
|
|
|
hmm i was looking at it right now , i think i'll try out this serializer thing.
thanks tho !
|
|
|
|
|
Anyone know how to get the current build version (as defined in 'assemblyinfo.cs') programmatically, e.g. so it can be shown in an 'about box', without learning masses of (irrelevant?) stuff about assemblies?
Seems such a simple requirement but I can't find an answer!
|
|
|
|