Activity overview
Latest activity by odalet
I'm sorry, but I am just a guest on this project. And so, I can't generate a new release on codeplex. When I find time, I may post the patched binaries on a share site (or on a gmail account). / comments
I'm sorry, but I am just a guest on this project. And so, I can't generate a new release on codeplex. When I find time, I may post the patched binaries on a share site (or on a gmail account).
I've submitted a patch on Hawkeye codeplex's site. Here it is: http://hawkeye.codeplex.com/SourceContr ... hList.aspx
If you want to test this tool (which is definitely a must-have for every .NET programmer) you can either download the binaries or the sources. With the latter, if you apply the patch I submitted, you'll have the "Show source code in Reflector" button work.
PS: I hope the patch will be validated and integrated soon in the release build, but the project doesn't seem to be very active these days. If things don't change maybe I'll ask the project coordinator to be part of his dev team.
Once again, thanks for your help. / comments
I've submitted a patch on Hawkeye codeplex's site. Here it is: http://hawkeye.codeplex.com/SourceContr ... hList.aspx
If you want to test this tool (which is definitely a must-have for every .NET p...
Hi Jason,
There were indeed two problems in Hawkeye source code:
- Reflector's window title is not any more "Lutz Roeder's .NET Reflector" byut "Red Gate's .NET Reflector". Easy to fix!
- The second one is due to the fact that now, Reflector is displaying the currently loaded list. So the real window title is "Red Gate's .NET Reflector - [My list]" if a non default assembly list is loaded.
This second issue is fixed in Snippy's code: instead of using the Win32 API FindWindow (which only accepts the window text), you make use of EnumWindows along with a callback that checks that the window title starts with "Red Gate's .NET Reflector". All this is sufficient to have Hawkeye work correctly.
Just for your information, Hawkeye isn't using the "code://" syntax to select elements: instead it first selects the target assembly, and then it uses a "X:Name" syntax where X can be either P, E, F or M respectively for Properties, Events, Fields and Methods. And this too works correctly.
It also uses a different way to select an assembly. By what I could see by - following your advice - examining the bookmarks, the assemblies are specified that way: Assembly Name:Version:Public Key Token. For his part, Hawkeye is directly specifying the complete path to a file. I don't know which way is the best.
And to finish with this story. I gonna post a patch (or update the source code) on Hawkeye codeplex's site using the latest version of RemoteController. As soon as this is done, I post a message in here.
PS: your post led me to install your addin into Reflector. And I don't think I'll remove it: it's pretty useful. Thank you for this. / comments
Hi Jason,
There were indeed two problems in Hawkeye source code:
- Reflector's window title is not any more "Lutz Roeder's .NET Reflector" byut "Red Gate's .NET Reflector". Easy to fix!
- The secon...
Reflector's SendMessage API
Hi, if Reflector is the very first tool I install on a brand new PC, then Hawkeye (http://www.codeplex.com/hawkeye) is the second or the third one.
There is one functionality of Hawkeye that used t...
James Moore wrote:
You can get the code:// form for any element by selecting it in the hierarchy and hitting ctrl-alt-c, the full URL will then be put on your clipboard (you can often delete a few elements of the URL and it will still work).
This one didn't work for me: I'm using a French Vista 32bits box. / comments
James Moore wrote:
You can get the code:// form for any element by selecting it in the hierarchy and hitting ctrl-alt-c, the full URL will then be put on your clipboard (you can often delete a f...
Now, I'm not so sure I was right:
I've tried similar code, in debug and release mode... same result in Reflector, and no CS$ stuff...
And, unless you modify your project's Build properties, debug mode comes with no optimizations. / comments
Now, I'm not so sure I was right:
I've tried similar code, in debug and release mode... same result in Reflector, and no CS$ stuff...
And, unless you modify your project's Build properties, debug m...
Yes this can be done using managed code, but that's certainly not part of System.Reflection. It is simply [image] a matter of parsing the XML file and matching the documentation for a type with the one you currently browse.
The (so regretted) NDoc project ( http://ndoc.sourceforge.net/ ) used to do this for documentation generation purpose.
For the framework's assemblies, the corresponding XML are in C:\Windows\Microsoft.NET\Framework\v2.0.50727 (for .NET 2.0). / comments
Yes this can be done using managed code, but that's certainly not part of System.Reflection. It is simply a matter of parsing the XML file and matching the documentation for a type with the one yo...
In fact, the result is (a little bit) better if you revert to .NET 1.0 optimizations. This way, Reflector won't try to display anonymous delegates and will revert to a .NET 1.0 syntax, (with inner classes). But because these classes are generated, their name isn't C# compliant and it won't compile. In these sort of case, I use global renamings (replacing each invalid character in a name by an underscore, and hopping I won't have collisions).
For instance here the same piece of code with .NET 1.0 optimization: using (Task task = Task.Create(new Action<object>(class2.<ForWorker>b__3), manager, options | TaskCreationOptions.SelfReplicating))
{
task.Wait();
}
And if you go to the <ForWorker>b__3 method, you can see this: int sharedIndex;
int num3;
int step = this.step;
do
{
sharedIndex = this.sharedIndex;
num3 = sharedIndex + step;
if (num3 < sharedIndex)
{
num3 = 0x7fffffff;
}
}
Better, isn't it?
And for information, System.Threading.dll is new and not yet RTM, but so useful! It is the new Microsoft Parallel extensions for .NET
Download it here: http://www.microsoft.com/downloads/deta ... laylang=en / comments
In fact, the result is (a little bit) better if you revert to .NET 1.0 optimizations. This way, Reflector won't try to display anonymous delegates and will revert to a .NET 1.0 syntax, (with inner ...
It looks like an optimization, but I am not sure.
I suppose the DLL you fed Reflector with was a Release one, maybe a 64bits? / comments
It looks like an optimization, but I am not sure.
I suppose the DLL you fed Reflector with was a Release one, maybe a 64bits?
This leads me to a question:
why do you set expiration dates on Reflector releases? Why don't you just use a more classical update manager like other softwares?
I don't know if this behavior is still true, but with older versions of Reflector, I was sometimes forced to updating, otherwise Reflector wouldn't run (I usually appreciate updating my reflector, but it is sometimes difficult when you have no network access).
And, last but not least, do you plan to provide the community with a Developer's reference manual of some sort, or a NDoc CHM, well... some kind of documentation for plugins programmers?
Best regards, / comments
This leads me to a question:
why do you set expiration dates on Reflector releases? Why don't you just use a more classical update manager like other softwares?
I don't know if this behavior is sti...