|
You mean at runtime? .NET framework doesn't provide ability to load types from the embeded assembly at runtime in some way? (I don't mean using Reflection API which requires developer to code, some automatic reference to inside assembly as if it was an external .dll)
Would you give more describtive explanation?
---
"Art happens when you least expect it."
|
|
|
|
|
I don't really know how are you planning to do so. I thought Reflection will be your solution. If you know about another way, please let me know about it.
Thanks
Free your mind...
|
|
|
|
|
No I don't
You are right I guess Reflection is the only way but I can't figure out how to and using which Reflection methods reflect types inside an embedded assembly, can you help me on this buddy?
---
"Art happens when you least expect it."
|
|
|
|
|
Sure I can.
Can you send me the code you've done ? and explain me exactly what you want to do ?
Free your mind...
|
|
|
|
|
Ok though I really desire to, but it's not my own code and a team project so I am not allowed. any way I am so thankful about your care and help
---
"Art happens when you least expect it."
|
|
|
|
|
|
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".
-----BEGIN GEEK CODE BLOCK-----
Version: 3.21
GCS/G/MU d- s: a- C++++ UL@ P++(+++) L+(--) E--- W+++ N++ o+ K? w++++ O- M(+) V? PS-- PE Y++ PGP++ t++@ 5 X+++ R+@ tv+ b(-)>b++ DI++++ D+ G e++>+++ h---* r+++ y+++
-----END GEEK CODE BLOCK-----
|
|
|
|
|
nt
---
"Art happens when you least expect it."
|
|
|
|
|
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
leppie::AllocCPArticle("Zee blog"); Seen on my Campus BBS: Linux is free...coz no-one wants to pay for it.
|
|
|
|
|
Firts of all here is my version of Dell 3Xi as your merry b-day gift:
"Art happens when you least expect it"
Happy birthday Leppie!
Secondly your approach seems great, but may I use refrences to the dll's types and methods inside my code at develop time in this approach?
Thanx
---
"Art happens when you least expect it."
|
|
|
|
|
Den2Fly wrote:
but may I use refrences to the dll's types and methods inside my code at develop time in this approach?
Im not sure what u mean? I havent implemented this approach before, so I'm not really sure if any "quirks".
leppie::AllocCPArticle("Zee blog"); Seen on my Campus BBS: Linux is free...coz no-one wants to pay for it.
|
|
|
|
|
Is there a way in .Net to get a reference to the applications Main Form (Window)? Similar to what you would do in a MFC app:
AfxGetApp()->GetMainWnd();
Gary Kirkham
A working Program is one that has only unobserved bugs
I thought I wanted a career, turns out I just wanted paychecks
|
|
|
|
|
In your startup method (main) just change it to be like this:
form = new MainForm();
Application.Run(form);
Where "form" is a static field that you can get to from anywhere.
|
|
|
|
|
Hi I'am having trouble converting a string containing date and time info to a DateTime for comparison. The string is in this format "Thu, 03 Jan 2002 00:00:00 GMT". Any help would be greatly welcomed.
Thanks,
James Gill
|
|
|
|
|
jnngill wrote:
The string is in this format "Thu, 03 Jan 2002 00:00:00 GMT".
try this, where s is your date string.
DateTime.Parse(string s);
R.Bischoff
.NET, Kommst du mit?
|
|
|
|
|
Try:
DateTime theDate = DateTime.ParseExact("Thu, 03 Jan 2002 00:00:00 GMT", "r", null);
Standard DateTime Format Strings[^]
"These people looked deep within my soul and assigned me a number based on the order in which I joined." - Homer
|
|
|
|
|
Thanks, it worked like a charm.
Thanks,
James Gill
|
|
|
|
|
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
|
|
|
|
|
You will get more responses by posting in the correct board.
I would recommend posting in one of the following:
Lounge
Work Issues
SoapBox
This board is for C# related questions, hence coding with C#.
R.Bischoff
.NET, Kommst du mit?
|
|
|
|
|
Ive some problems with tabpages
i have one form with one tabcontrol with one tabpage
The first tabpage contain a button.
When you click the button a new tabpage will be created and added to the tabcontrol.
This works.
But the second created tabpage contain a button to for closing that page. I used the next code:
((Tabcontrol)this.parent).Tabpages.remove (this);
It works but after i used these code i connot close the form (the close button doesnt work anymore) However a "Application.exit" command in the menus works.
Can anyone help me?
Ive another problem:
When i click the button in the first tabpage, how con i focus the second?
I used the
tabpage.focus ();
command but it doesnt work
Jonathan Slenders
|
|
|
|
|
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 :
TabPage page = new TabPage("Second");
tabControl1.TabPages.Add(page);
tabControl1.SelectedTab = page;
-----BEGIN GEEK CODE BLOCK-----
Version: 3.21
GCS/G/MU d- s: a- C++++ UL@ P++(+++) L+(--) E--- W+++ N++ o+ K? w++++ O- M(+) V? PS-- PE Y++ PGP++ t++@ 5 X+++ R+@ tv+ b(-)>b++ DI++++ D+ G e++>+++ h---* r+++ y+++
-----END GEEK CODE BLOCK-----
|
|
|
|
|
// The TabControl.SelectedIndex Property works good. Thanks for that.
// But i doesnt know how i can do it in another thread.
// Now i have created an instance of a class inheritted from the Tabpage.
// That class contain a property which refer to a function with the delegate:
public delegate void delRemoveTabPage (TabPage tabPage1);
// When i create that instance i set the RemoveTabPage property
TabPage1.RemoveTabPage += new delRemoveTabPage (RemoveTabpage);
// My RemoveTabPage function is these
void RemoveTabpage (TabPage tabPage1)
{
tabCtrlMain1.TabPages.Remove (tabPage1);
}
// It works (This tabpage disapears but the close butten doesnt work anymore like i said before.)
// Well, i have an other possibility but i don't know if this is good:
// the TabPage.Hide ( ) method works perfect. And if i add code in the tabpage thad set his childs
null i think there will be not mush memory used for thad hidden tabpage. Is this a good method?
|
|
|
|
|
Next time you post, please do not prefix each sentance with "//". It's very hard to read and completely unnecessary.
See the Control.InvokeRequired and Control.Invoke methods. These make sure that the action is performed in the main thread by invoking it from another method. For instance:
private delegate void RemoveHandler(TabPage);
private void removeButton_Click(object sender, EventArgs e)
{
Button b = sender as Button; if (b == null) return;
TabPage tab = b.Parent as TabPage; if (tab == null) return;
if (this.tabControl1.InvokeRequired)
{
RemoveHandler handler =
new RemoveHandler(this.tabControl1.TabPages.Remove);
this.tabControl1.Invoke(d, new object[] {tab});
}
else this.tabControl1.TabPages.Remove(tab);
} And no, simply hiding the tab is not a very good idea unless you plan on showing it again. When you're done with objects, dispose of them.
-----BEGIN GEEK CODE BLOCK-----
Version: 3.21
GCS/G/MU d- s: a- C++++ UL@ P++(+++) L+(--) E--- W+++ N++ o+ K? w++++ O- M(+) V? PS-- PE Y++ PGP++ t++@ 5 X+++ R+@ tv+ b(-)>b++ DI++++ D+ G e++>+++ h---* r+++ y+++
-----END GEEK CODE BLOCK-----
|
|
|
|
|
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?
|
|
|
|
|
If you can't set your custom format with DateTimePicker.CustomFormat and DateTimePickerFormat.Custom properties you can implement IFormattable interface. Look into MSDN for more information.
Mazy
No sig. available now.
|
|
|
|