This is not practical. The CLR loads Types based on their assembly name (filename, version, culture, and public key token) and loads the Type from the namespace and class name. If you set it as an embedded resource, the CLR can't do its job and JIT'ing your application will fail!
There's nothing wrong with an app that has references to DLLs. Fusion - the part of the Framework that binds assemblies - either pulls DLLs from the application directory or another configured private path (see <probing> in the .NET Framework SDK documentation), or from the global assembly cache (GAC). If the application is deployed from the Internet/intranet using a touchless installation, it will just as easily download the assemblies in the same manner to the temporary assembly cache and load the executable just by clicking a link (or for an embedded user control).
No install is needed (besides the .NET Framework) and you can simply copy files, hence "touchless deployment".
Its quite possible and not too hard, just a bit of work to get it going.
1. Compile dll.
2. Set dll as embedded resource to exe.
3. In main you need to setup an eventhandler to AppDomain assebly resolve event, cant remeber the exact name now.
4. At the event, read the resource stream of the dll (using compression mite be handy), into a byte.
5. Load the assembly via Assembly.Load(byte).
6. Send me a Dell 3Xi for my b-day in a few weeks
Good day to all u programmers out there. Pls could you offer help on the following:
1. I enjoying programming and I also have a great love for database administration...where do I fit in?
2. I seldom use a tool for long before moving around to something new - low persistence...where do I fit in?
I know some of u are professions. Pls help me discover myself (direction and clear advice without any biase)...where do I fit in?
...the mind is not a vessel to be filled but a fire to ignited
When remove a TabPage or Control from a collection like this, make sure you do it in the main UI thread, no another thread. This can lead to problems processing the message loop that internally dispatches messages to the appropriate windows. There are other causes of this behavior and we've discussed it before. You could try searching the comments to find more causes.
Instead of TabPage.Focus, use TabControl.SelectedIndex or TabControl.SelectedTab:
// Initialize the TabPage and its contents
TabPage page = new TabPage("Second");
tabControl1.SelectedTab = page;
I have a custom format, however, I want the abbreviated Month to be displayed all in uppercase. DateTime doesn't like this and I am a bit suck in how to accomplish this. I don't want to override the paint method.
Anyone got any ideas? Is there a helpfile class or something that the datetimepicker uses?
Basically I want to print some stuff from my program, it works just great on every single test machine, but on customer's computer when the printing should start I got an Arithmetic underflow or overflow exception at System.Drawing.Font.Init. The same error shows up when selecting some fonts (but I can still use those fonts from Word, ...) and closing the font dialog. To be even more strange if I print from an other program before starting my own printing it will work like a charm.
Does anybody meet something like this? Any hint would be great, I'm
dataTable1.RowChaging += new DataRowChangeEventHandler(dataTable1_rowChaing)
private void dataTable1_RowChanging(object sender, DataRowChangeEventArgs e)
if ( e.Action == DataRowAction.Add )
throw new ApplicationException("不合法的检查项目！");
the problem is :
this dataTable is associated to a datagrid, when add a new row through the datagrid, the rowchanging event can be trigered. If the row is invalid, the exception will be throwed, and the new row cannot be added to the dataTable1.
But when should I handle this Exception? I can't catch this exception.
You could create a handler for AppDomain.UnhandledException, but it might be simpler to just display an error or warning message box to the user with MessageBox.Show. With Windows XP and higher, they are now using balloons when invalid characters are typed, such as a backslash in a filename or another invalid character somewhere. You could always do something like that, too.
Basically, just don't throw the exception and instead provide feedback to the user.
Sorry about that. I've been doing so much control development lately I'm too used to such events being CancelEventHandler events (or similar)!
Yes, you'll have to throw the exception so add a handler to AppDomain.UnhandledException like I mentioned before. I recommend you also create a custom exception class that derives from ApplicationException (typically used for custom exceptions to give them a common, application-based base class) that you throw from the DataTable.RowChanging event handler. This way, you can easily just catch this exception in the handler for the AppDomain.UnhandledException event and handle appropriately, which is better than throwing such a oft-used exception and trying to determine where it came from and why it was thrown.