|
James T. Johnson wrote:
Instead your application is broken because it is trying to load two assemblies that differ only by version which isn't allowed.*
But they work right if they are loaded in the GAC. Am I correct?
Before I go further, I don't know that updated assembly was compiled with 1.1. That's my first mistake. I should have read the instructions properly.
My second mistake was, I thought IDE would act cleverly when you try to add newer (1.1 compiled) assemblies. I was wrong. After today's experience the IDE won't care which version of compiled assemblies you are referencing.
Thx for the configuration wizards tip.
James T. Johnson wrote:
how would you interface with the newer assembly? For instance, how would you add a control from .NET 1.1 to a .NET 1.0 form? If we assume you could implicitly cast between versions, then how would you call methods on the 1.1 version?
Very good point. If you know answer, please let me know. (just for curiosity)
James T. Johnson wrote:
WHY would you want to load both at the same time?
I don't want to load both the assemblies. I was just trying to replace the current one with the newer version.
Can you suggest me (or better write an article) about how to add new 1.1 assembly to 1.0 application? (apart from your configuration wizards tip)
James T. Johnson wrote:
You'd be loading the core assemblies all over again because the version 1.1 class is also referencing the core 1.1 assemblies
Exactly. That's my question.
Never take a problem to your boss unless you have a solution. This signature was created by "Code Project Quoter".
|
|
|
|
|
Kant wrote:
But they work right if they are loaded in the GAC. Am I correct?
Nope, that is what is happening now.
The problem isn't that the version of the custom control changed, its that the assemblies *it* referenced are of different versions than what are already loaded. When the loader sees that the version already loaded differs from the one requested, it throws the FileNotFoundException.
Come to think of it, you *might* be able to get around the problems (and avoid a .config file if you don't need one) by hooking into the AppDomain.AssemblyResolve event. This puts you in complete control of how all further assemblies are loaded if the original request fails (which it would if the wrong version is already loaded).
It would require some work on your part, but you would need two bits of information...the assembly name and public key token (to ensure that you are being asked to load one of the framework assemblies and not some bogus one). You could then use that information to load the correct assembly or return a reference to the already loaded one.
James
"I despise the city and much prefer being where a traffic jam means a line-up at McDonald's"
Me when telling a friend why I wouldn't want to live with him
|
|
|
|
|
FxCop is a code analysis tool that checks .NET assemblies for conformance to the Microsoft .NET Framework Design Guidelines. It uses reflection, MSIL parsing, and callgraph analysis to inspect assemblies for more than 200 defects (edit: I think the author's language use is defective then as these are guidelines, not defects) in the following areas: naming conventions, library design, localization, security, and performance (see rule documentation). The package includes both GUI and command line versions of the tool, as well as the SDK to create your own rules.
FxCop 1.21
http://www.gotdotnet.com/team/fxcop/default.aspx[^]
To add some: HTH can they say var instead of m_var is a defect?
de·fect
1. The lack of something necessary or desirable for completion or perfection; a deficiency: a visual defect. 2. An imperfection that causes inadequacy or failure; a shortcoming.
F13 to run Moron Checker
<a TITLE="See my user info" href=http:
|
|
|
|
|
Did not know it is supposed to be a rule to test a empty string by checking the length. Doesn't that blow if your string is null and does not point to a string object? In that case you would have to check for null and then check for length. I have been assigning my strings String.Empty when initalized and just comparing for that. Maybe I have to change.
Rocky Moore <><
|
|
|
|
|
Here's the classic compiler warning:
Say u have an ArrayList with mixed objects, then try test for an empty string like this:
if (arr[2] == "") ...
and it complains that you should cast.
But to most inexperienced programmers will just do:
if ( (string) arr[2] == "") ...
and how now brown cow? Well my opinion.
You should of course do this (i think, i just ignore the warning):
if ( arr[2] as String == "" ) ...
<a TITLE="See my user info" href=http:
|
|
|
|
|
BrowseForFolder:
How is it possible to set the starting path (meaning the first Directory shown in the BrowseForFolder Dialog)?
Thanks
Stefan
|
|
|
|
|
you can set the path yes , check this msdn article about it :
msdn article
switch(twinsOnWay)<br />
{<br />
case ("twins on the way"):<br />
MessageBox.Show("for mr and mrs dynamic","twins on the way");<br />
break;<br />
}
|
|
|
|
|
Is params a C# keyword or can it be used in other .NET programming languages?
Thanks
|
|
|
|
|
monrobot13 wrote:
Is params a C# keyword
Yes, C# only. And No, it cant be used in other .NET langauges.
<a TITLE="See my user info" href=http:
|
|
|
|
|
I want to owner-draw some window scrollbars on a combo box dropdown, using a method that works under Windows 9x. Now, I know that pre-XP windows does not have any easy way of doing this.
If it was a listbox, you could make your own window, put a listbox without the hscroll and vscroll styles set, and scrollbar, on that window, and forward the messages (and the focus) to the combo. All fine and dandy, except that it would no longer be able to be derived from ListBox. It is also not a very good way of doing things.
You could also subclass the control and draw over the scrollbars (in the WM_NCPAINT notification), but that gets a little tricky, because the scrollbar redraws when the user scrolls. On top of that, if you want a scrollbar with a different width, too bad.
You could remove the hscroll and vscroll styles, resize the client area, and draw your own scrollbar from scratch, but the next time someone tries to change the scroll info using the SetScrollInfo API, there they are again.
Any ideas?
"Blessed are the peacemakers, for they shall be called sons of God." - Jesus
"You must be the change you wish to see in the world." - Mahatma Gandhi
|
|
|
|
|
I'm going to go the WM_NCPAINT way, as there's obviously no better way, and it works.
"Blessed are the peacemakers, for they shall be called sons of God." - Jesus
"You must be the change you wish to see in the world." - Mahatma Gandhi
|
|
|
|
|
I'm having a hard time how to set up my event handling for my app. Its an mdi app, where the window that gets displayed depends on what the user clicks in the parent window through a series of link labels and buttons. When a user clicks on a control I want to pass the name of the form to display, but I don't know how to do this. Can any one help me get starte on this?
|
|
|
|
|
have a constructor, pass by value a string or object , use MDI methods.
|
|
|
|
|
|
I think you want to try VB rather
No, seriously, C# does NOT support default (optional) parameters. That is generally done with method overloading (a bit boring sometimes, but it does help in other areas, eg complex initialization/ops).
Another option is to variable arguments ak params (like the Console.WriteLine() overload), but that is more similar to var_args in C. In fact the compiler will generate 3 overloads for you, and the "default" array parameter.
<a TITLE="See my user info" href=http:
|
|
|
|
|
WebRequest wrGETURL;
wrGETURL = WebRequest.Create(sURL);
((HttpWebRequest)wrGETURL).UserAgent = "Mozilla/5.0";
Q1) On the first line above we can see that WebRequest is a class. On line 2 it seems to me that WebRequest is now an "instance". Could somebody explain that to me? I don't understand how you can call a method on a "class". I thought you had to call it on an "instance of the class".
Q2) In the third line wrGETURL is being cast to HttpWebRequest. I really don't understand how this could be legal since HttpWebRequest is derived from WebRequest. Could somebody demonstrate this casting using a generic set of classes (foo, bar ... etc.)
Thanks!
|
|
|
|
|
A1) In the second line, WebRequest is still a class, and Create() is a static[^] method of that class.
A2) Well, WebRequest.Create() can return various types of web requests (including HTTPWebRequest), therefore, it needs to have the generic web request as a return type. In this case, I suppose that the URL is assumed to start with "http://" and therefore return an HTTP request.
"Blessed are the peacemakers, for they shall be called sons of God." - Jesus
"You must be the change you wish to see in the world." - Mahatma Gandhi
|
|
|
|
|
i have some problems storing data in an access-database.
my dataadapter don't want to execute the update()-command
correctly.
i'm creating my commands via OleDbCommandBuilder and the
sql-statements seems correct. only the select-command works
properly. the only difference between the select-command object
and the others is a private attribute called "executequery".
in the select-command that flag is true in the others false.
but i cannot access it!
what is to do?
here's some code:
string sConnString = "provider=Microsoft.JET.OLEDB.4.0; data source = myDatabase.mdb";
string sCmdString = "SELECT * FROM dbTest";
OleDbDataAdapter dataAdapter = new OleDbDataAdapter(sCmdString, sConnString);
OleDbCommandBuilder cb = new OleDbCommandBuilder(dataAdapter);
dataAdapter.UpdateCommand = cb.GetUpdateCommand();
dataAdapter.UpdateCommand.CommandTimeout = 20;
dataAdapter.InsertCommand = cb.GetInsertCommand();
dataAdapter.InsertCommand.CommandTimeout = 20;
dataAdapter.DeleteCommand = cb.GetDeleteCommand();
dataAdapter.DeleteCommand.CommandTimeout = 20;
// that works
table = new DataTable(sTable);
dataAdapter.Fill(table);
// fill the table with some data
// ...
// that one doesn't work
dataAdapter.Update(table);
thanks,
phil
|
|
|
|
|
I'm not sure if this is the problem that you are having, but have you set up your UpdateCommand property of OleDbDataAdapter or DataSet instance that you are working with? I think you have to do that in order for Update to work properly.
|
|
|
|
|
Hi. I need to read a text file.
I know that the System.Xml.XmlTextReader class provides a way for ignoring white spaces (space, tab, return, ...) using the WhitespaceHandling field.
I was wondering if there is something like that for reading plain text files (since i did not find it)
ricardo
|
|
|
|
|
Try the System.IO namespace - espically System.IO.TextReader.
α.γεεκ Fortune passes everywhere. Duke Leto Atreides
|
|
|
|
|
I did look in TextReader, but since i could not find that feature, that is why i am asking about it here.
ricardo
|
|
|
|
|
|
a very basic case of opening a text file and checking it's contents :
private void button1_Click(object sender, System.EventArgs e)
{
TextOpen("test.txt");
}
private void TextOpen(string txtPath)
{
System.IO.StreamReader stream = new System.IO.StreamReader(txtPath,Encoding.ASCII,true);
MessageBox.Show(stream.ReadToEnd());
stream.Close();
}
switch(twinsOnWay)
{
case ("twins on the way"):
MessageBox.Show("for mr and mrs dynamic","twins on the way");
break;
|
|
|
|
|
Hehe, it appears people cant read questions anymore
I assume that you are looking for something like a "word" or "token" reader.
This is rather easy to do, and there are many ways to do this.
1. String.Split( char[] whitespace )
2. Take a string, read it char for char adding it to a StringBuilder when reaching whitespace, add string in StringBuilder to ArrayList and clear StringBuilder, continue the process. This gives you a bit more control and makes debugging easier.
3. Use RegEx.Split
<a TITLE="See my user info" href=http:
|
|
|
|