|
|
What I want is a remoting host that keeps one copy of the remoted object for each of the clients. I need my host to act this way because each client will request and decode a message. If the message is correctly decoded, a private boolean variable in the remoted object is set to true. This is the only way I could think of to authenticate clients without going through a login process.
If my host uses Singleton mode: once one client authenticates itself, all the clients will be authenticated. In other words, authentication can be bypassed if a legitemate user is already in.
If my host uses SingleCall mode: once a client authenticates itself, the remoted object will be destroyed, and the client won't be able to call any subsequent functions.
I hope this makes sense. Any suggestions would be greatly appreciated.
Thanks,
Steve
|
|
|
|
|
|
It seems to be flavour of the month atm, but I'm trying to develop a generic plugin architecture for extending application functionality. To achieve this I have a dll that contains interfaces for a base addin (IBaseAddin) and an addin manager (IAddinManager).
I have an application in mind that is already written, I just need to move some of it's functionality out into addins, which will be tab pages. I also want other people to be able to produce addins for the application, so I am producing and SDK too. Essentially the SDK just extends the generic dll described above, so we have MyAddin which inherits from TabPage and implements IBaseAddin and I also have IMyAddinManager, which extends IAddinManager. This SDK is also a separate dll and any addins will be implemented in their own dll exporting a single type that inherits from MyAddin.
The main form in the application implements IMyAddinManager (i.e. it is the addin manager itself) and has a LoadAddins method which is responsible for loading all addins in the \addins\ folder and addin each one to the tab control of the main form. The code to achieve this looks something like this atm:
public void LoadAddins()
{
IAddinManager manager = this;
DirectoryInfo dirInfo = new DirectoryInfo(Environment.CurrentDirectory + @"\addins\");
FileInfo[] fileInfo = dirInfo.GetFiles("*.dll");
foreach(FileInfo fileInfo in Files)
{
Assembly assembly = Assembly.LoadFrom(fileInfo.FullName);
try
{
Type[] types = assembly.GetExportedTypes();
object addin = assembly.CreateInstance(types[0].FullName);
if((null != addin) && (addin is TabPage))
{
((MyAddin)addin).Manager = manager;
this.tabControl.Controls.Add(addin as TabPage);
this.addins.Add(addin as IBaseAddin);
}
}
catch(Exception exc)
{
System.Diagnostics.Debug.WriteLine(exc.Message);
}
}
}
The line that tries to set the Manager property throws a System.InvalidCastException even though the debugger allows me to browse all of the relevant properties, etc. and shows the correct type. Any ideas why this isn't working?
Derek Lakin.
I wish I was what I thought I was when I wished I was what I am.
Salamander Software Ltd.
|
|
|
|
|
|
Hi!
There is a main form with a set of child controls (buttons, labels, editboxes, etc). I need to paint some graphics OVER these controls. Overriding MainForm.OnPaint does not help -- all graphics is overshadowed by the controls. Any ideas?
Regards,
dur_kart
|
|
|
|
|
i have a simple network of two computer (xp prof installed on both).i have created a user on both machine with same name and password and both are members of admin.. group.
i have created a service in c# i am running it in local system account.
but i could not access any file on the network of another computer in my service of c#?
could any body help me in this regard?
r00d0034@yahoo.com
|
|
|
|
|
The problem you're running into is that while the "local system" account has virtually unlimited power on one machine, it's got no authority whatsoever across the network.
With Windows XP, a new built-in account "Network Service" was added that can access resources on remote machines authenticated as the machine account. I think however that this requires your machines to be part of a domain. If so, running your service as Network Service is probably a good approach.
If your machines aren't part of a domain, then you'll need to configure the service to run under a local account with a matching account on the machine you want to access. The username and password must match, and I think the workgroup name may have to match as well, though I'm not sure about that. If you configure your service to run under this account, it should be able to access remote files on any other machine with a matching account.
Hope that helps
Burt Harris
|
|
|
|
|
1. Say I have Project A, which references Project B and Project B then references Project C. Why must I add a reference to Projects B AND C in Project A?
2. What can I do to resolve a circular dependency? I have an application that references a class library (separate dll), but that class library requries access to a class in the main application. Hey presto circular dependency
Derek Lakin.
I wish I was what I thought I was when I wished I was what I am.
Salamander Software Ltd.
|
|
|
|
|
If you have 3 DLLs and the referencing works like this:
A refs B which refs C, then A doesn't need to reference C at all.
Unless, there B exposes parameters that exist in C or something like that.
This doesn't make much sense.
Cheers,
Simon
"The day I swan around in expensive suits is the day I hope someone puts a bullet in my head.", Chris Carter.
my svg article
|
|
|
|
|
You'll probably need to rethink the packaging of your classes to avoid the circular dependencies. There are times that this means putting a class in a place that might seem "wrong", but it works out for the best.
The concept of Namespace is great for the logical partitioning of your applicaiton, where as packaging classes into Assemblies (the output from your projects) involves deployment decisions, security decisions, etc. When I originally started out with managed code, I tried for a 1:1 relationship between the two, but as I've gained experience with them, I realize that its often good to treat them as indepenednent dimensions.
One approach you might use to resolve the circularity is to define an abstract class in your DLL which is used by references in the DLL. The .EXE references the DLL, implements a class that inherits from the abstract class, and instantiates it. It's also possible to use interfaces to do the same thing, if in doubt, try the abstract base class first.
Burt Harris
|
|
|
|
|
Hi,
I would like to know how these parameters handled by runtime, that includes how memory is managed and alocated based on "ref" or "out" qualifier.
Any pointer is welcome...
Cheers,
Venkatraman Kalyanam
Chennai - India
"Being Excellent is not a skill, it is an attitude"
|
|
|
|
|
IMHO:
Memory is not allocated for ref parameters, they are like pointers in C++, the caller should allocate the memory.
And, the memory allocated by the out parameter is just like a return value of a function.
Don't forget, the memory allocation behaviour on .NET is well-defined, maybe you need to read something on the Garbage Collector.
I see dumb people
|
|
|
|
|
Hi , i have developed two controls that both are licensed.
QUESTION 1:
say i have :
control A
control B contains control A
both are licensed (using .lic files)
when i add control A to a form, vs.net automagicly adds a licenses.licx with information saying that control A uses a license.
so far so good.
but if i try to add control B to a form , vs.net adds informtion about control B into the licenses.licx as it should , the control appears in designtime..
but when i start , i get an error saying that no valid license could be found for control A!!!
so , why is it that the control can appear in designtime but not in runtime?
and how can i make control B add information about both itself and control A into the licenses.lixs when i add it to a form?
-----------------------------------------------------------------------------------------------
QUESTION 2:
if only one of my controls uses licenses (using .lic files).
say Control A is licensed but control B is not.
Control B contains Control A.
if a user of my controls then adds control B to a form , nothing gets added to the licenses.licx.
so , how can i make one control add license information about another into the licenses.licx???
//Roger
|
|
|
|
|
Hi,
I downloaded .NET Framework 1.1 Final Beta, and I think I installed it. However, I also have to have .NET Framework 1.0 (SP2) in order to have CSC.EXE, etc. running. What do I have to do in Visual Studio .NET to run my custom applications under the .NET Framework 1.1 Final Beta?
I'm hoping to see if .NET Framework 1.1 will solve some bugs I may be encountering, and believe me, I can't wait for either 1.0SP3 or .NET Framework 1.1 to ship.
Thanks,
Arun
|
|
|
|
|
it has to do with the app.cfg file or you can manually add the assemblies of the 1.1 beta instead of the default 1.0 assemblies in the solution explorer I honestly don't know much about the app.cfg file (do a search here about it I think somone wrote an article about it...)but I know that that you can edit this to run the 1.1 beta assemblies instead of the 1.0 ones. Personally I think just chooseing the 1.1 assemblies in the solution explorer would be the easyest.
|
|
|
|
|
How can I open an Explorer Window to a specific directory? I.E. When the user of my app clicks a certain menu item, I want, say "C:\Bin" or something open up. I know you can use ShellExecute, but my personal coding style with .NET is to stay away from DllImport as much as possible.
Thanks in advance.
Jamie Nordmeyer
Portland, Oregon, USA
|
|
|
|
|
Hard to find, isn't it? Fortunately, there is no need to use any DllImport stuff.
You need the Process class located under System.Diagnostics, of all places. It is actually a mixture diagnostic info and other useful functions. Just create a new Process object, and use one of the Start() overloads to run it. There are several options, including the UseShellExecute and StartInfo properties (one of the places where you can set arguments).
Cheers
|
|
|
|
|
Yeah, I definately would never have found that. Why on earth is it in Diagnostics, I wonder? I mean, maybe I'm just 'loco en la cabeza' or something, but to me, the Diagnostics namespace would pretty much just be, oh, I don't know, debugging stuff. I would've thought (and DID think) that something like this would be under the Runtime namespace (since it's something that you're doing at... Runtime).
Well, whatever. Thank you VERY much for pointing me in the right direction.
Jamie Nordmeyer
Portland, Oregon, USA
|
|
|
|
|
In fact, the more I look at it, Diagnostics contains FileVersionInfo, InstanceData, and various Performance and Process related stuff. I suppose someone did not want to call it the Info or Miscellaneous namespace, or something more reasonable. Sounds like a lot of stuff was just thrown-in with the Debug and Trace stuff, where there was a lot of room left over ... but Diagnostics? That makes me think strictly of tools for fixing something.
I wouldn't be surprised if there were scores of long meetings to discuss naming strategies. No doubt the developers/peons knew better, but there's no reasoning with corporate momentum. I'll stop ranting now.
Cheers
-- So many deeply-nested classes, and so little time...
|
|
|
|
|
Ok, here is a scenario. I need to adjust the alpha level of an icon under certain circumstances. Namely, for a disabled control. I only need to adjust the alpha level of the whole image, I don't need an alpha channel or map or anything like that. I don't know, and have been unable to find, any "quick and easy" way of doing this with the .NET framework.
I know GDI+ has the ability to use alpha mapping, but it seems you can only do that with solid or texture brushes. I havn't found any kind of DrawImage or DrawIcon function that takes an alpha value.
Does anyone know a simple way of modifying the alpha value of an image? Something that doesn't require adjusting the color value of every pixel in an image? Thanks much.
|
|
|
|
|
When the image is drawn on the screen, it is essentially painted pixel-by-pixel. So modifying the alpha value of each pixel would be no different from changing the alpha value of the entire image.
The only way I know of editing a picture is one pixel at a time.
Sorry I didn't have the answer you were looking for.
|
|
|
|
|
HI!
Is there an free FTP class library for .NET available?
OR an open source project that write a FTP class?
gicio
|
|
|
|
|
|
Hi!
I'm just learning c# and the .Net stuff and for fun I'm implementing an Explorer fake.
What I would need is the typical flow of calls when doing a drag/drop operation, for example when dragging a node (folder) in the treeview to another node.
I was going through the archive but couldn't find an article. Somebody there with some spare time?
Thanks in advance.
Matthias
In theory, there is no difference between theory and practice. In practice, however, there is.
(unknown author)
|
|
|
|
|