Getting guid in sandcastle chm with presentation style vs2010 - chm

I use Sandcastle to generate chm files for my dll's, but i want to use the VS2010 presentation style.
When i build the chm file with VS2005 presentation style, the 'Usage Note' of a method looks like this:
Usage Note
In Visual Basic and C#, you can call this method as an instance method on any
object of type Object. When you use instance method syntax to call this method,
omit the first parameter. For more information, see
Extension Methods (Visual Basic) or Extension Methods (C# Programming Guide).
where the text 'Extention Methods (Visual Basic)' and 'Extension Methods (C# Programming Guide)' both are links to MSDN sites.
But when i use the VS2010 presentation style (and this is the only property i did change), i get this:
Usage Note
In Visual Basic and C#, you can call this method as an instance method on any
object of type Object. When you use instance method syntax to call this method,
omit the first parameter. For more information, see
[b8020aae-374d-46a9-bcb7-8cc2390b93b6] or [175ce3ff-9bbf-4e64-8421-faeb81a0bb51].
So no links, but Guids.
Question is how to get the links in the VS2010 style just as in the VS2005 style.

Related

ActCtx + manifest + comhost + .NET 6.0: does it work, does anyone has a working example?

My goal is to expose a .NET 6.0 library to COM, in order to use it from VBA in MS Access. And to use the manifest approach rather than using the registry.
Got article "Exposing .NET Core components to COM" working, using their "COM server sample" example code.
This example however requires that a manifest file is present in the folder containing the executable. When using the COM object from MS Access we do not want to place the manifest file and other files in the MS installation folders.
The suggested solution is to create an Microsoft.Windows.ActCtx object and let that object create my COM object, using the Manifest property of the ActCtx object to specify the manifest file.
This is the part that continues to fail. actCtx.CreateObject("") gives an Invalid Cast exception, even without assignment of the result to a variable, hence it is an internal issue. No additional details, no information in the event log. Tried this in C# and from VBA.
I have a few questions:
Is ActCtx the way to specify the manifest path, or is there a better way to do this from VBA in MS Office?
The example uses a COM host, which seems to be some COM class / object factory, which in turn helps creating my COM object. As opposed to .NET Framework this COM host seems to be introduced for .NET Core; .NET 6.0 in my case. Is the COM host required? Is the simpler direct instantiation possible?
Does anyone has answers to these questions, tips, or even better: a working example?
Some progress but I am still not happy. Abandoned the ActCtx approach for a while and tried to create the COM server object of the sample directly in MS Access VBA. Added a reference to the com host, say COMServer.comhost.dll, as opposed to the implementation COMServer.dll. Created the object, simply with New. Error: class not registered. Performed a regsvr32 COMServer.comhost.dll and the sample works.
Although the sample works there are now again registry entries: the guid of the server class has been added to the registry. Regfree COM not achieved.
This is despite COMServer.comhost.dll looking promising. A tlb type library built separately and embedded in the .dll is seen by VBA: intellisense works and the object browser works. The manifest seems to be correctly embedded in the .dll too, and takes precedence over the manifest on disk.
The question remains how to avoid the regsvr32 step and make the solution working by just adding the reference to COMServer.comhost.dll, in MS Access VBA.

Can the AS3 API reference be accessed trough code

I am making a code completion system for a code editor, and i would like to show a tooltip for every parameter containing its reference data. I would like to emulate the code completion from Eclipse, so i was wondering if the API reference is available in code, or if i have to manually import it using the file system or something like that.
You could reflect the current class in question with flash.utils.describeType
This will return a xml with informations about methods, properties and so on.
This can be very heavy. If you use it all the time, try to use a caching system. The Flex framework has a class for it mx.utils.DescribeTypeCache

How to replace gwt json with my own json implementation

I need to find a method to work json implementation in my gwt-project com.google.gwt.json.client package instead of json in GWT com.google.gwt.json package.
In my GWT project I want to use json implementation written by myself and stored in a package in my project with same path as that of GWT json package.
Files inside this packages are com.google.gwt.json.client implemented by myself and keep in same package in my project, how to configure in project to use these packages instead of original.
Any suggestions regarding this will be appreciated.
Thanks to all..
UPDATES:
For more clarification on what I am looking for:
While parsing with JSONUtils in GWT, make parser to use JSONObject written in my project com.google.gwt.json package, insted of GWT-json in com.google.gwt.json package.
Sometimes it is necessary to modify certain GWT core classes because either, you need to fix an issue, or you need to add a new feature to them.
To override any GWT implementation class, for instance com.google.gwt.json.client.JSONObject, you only have to copy and modify that class in your src folder with the same path: src/main/java/com/google/gwt/json/client/JSONObject.java if you are using maven, src/com/google/gwt/json/client/JSONObject.java otherwise.
The only care you need is that your src folder is first in your classpath than the gwt sdk, with maven it is so by default. You should be aware as well that when you update the gwt version, perhaps you would need to update your implementations.
If the instances of the class you were trying to override, are created in GWT using the GWT.create() call, you could replace the class with your own implementation with a <replace-with> tag in your .gwt.xml. This technique is called deferred-binding. This is not the case since JSONObject is normally created with new.
Finally the <super-source> tag can be used to override any class implementation in compile time. Although super-source is designed to override jre classes by gwt implementations, replacing gwt with other gwt implementations works. In this case you have to put your modified classes, with the same namespace structure, in the folder pointed by the super-source tag.

Strange issue when adding a service reference to a project that has the JSON.NET library referenced

The project is your standard run-of-the-mill ASP.NET MVC 3 application that communicates with an in house WCF service. Our ASP.NET MVC application references a few external libraries, including the popular JSON.NET library.
The issue only occurs when the JSON.NET library is a reference in a project. I tried recreating this issue with a WebForms and a Windows Forms project, and the same thing happens.
When adding a service reference to our WCF service, and JSON.NET is a reference in our project, it builds the service reference like this:
With JSON.NET referenced in the project - notice the Request/Response Classes and the weird properties like Id1 and IdSpecified
But removing the reference to JSON.NET and updating the service reference builds it the way we want, like this:
Without JSON.NET referenced in the project
...
What in the world would cause this? JSON.NET is not referenced in the WCF project, so I highly doubt that there could be some sort of mix up there.
Some information that may help:
Tried checking various options in the Add Service Reference dialog such as "Reuse types in referenced assemblies" - but the same thing happens
Visual Studio 2010
WCF service uses Entity Framework for data access
When you add a service reference, WCF by default will reuse the classes from your assemblies that match the ones that will be generated otherwise.
This happens because, for example, you might develop both the service and the client and you might want to have a class library with all the classes referenced in both projects. This also makes sure that .NET default types (like arrays, lists, DateTime) are used.
You can change this default behavior like this:
Click the Advanced button after you selected "Add service reference"
Select "Reuse types in specified referenced assemblies"
Check all the assemblies, except the ones that you don't want to
use
Note that if you don't check the system assemblies, you will get a new type generated in the proxy file for every .NET type (like arrays, lists) as well.

How can I set the Root Namespace property correctly in a C++/CLI application?

I have a C++/CLI application in Visual Studio 2008 whose namespace follows the .NET guideline of CompanyName.TechnologyName[.Feature][.Design]. The problem is that there seems to be no way to set a multi-level namespace in the project's Root Namespace property. I have tried both CompanyName.TechnologyName and CompanyName::TechnologyName.
It seems that I cannot have a Form control inside a namespace that is not the root namespace as this causes the resources it uses to not be found, thus to me it seems impossible to follow their guideline and be consistent with my C# applications.
Is there a way to set this property to use multi-leveled namespaces or am I forced to use a root namespace that is simply one-level? Or is there a solution that I am overlooking?
Edit:
Functionality is added in Visual Studio 2010 to allow multi-level root namespaces. Use CompanyName.TechnologyName format NOT CompanyName::TechnologyName. While the latter works for /creating/ forms, if your forms require resources then when compiling, Visual Studio tries to save to CompanyName::TechnologyName.resources which will throw an error.
Not sure I see the resource problem. There is no notion of a "root namespace". You have the follow the C++ rules for namespace declarations, you'll have to nest them one at a time. For example:
namespace Contoso {
namespace Accounting {
namespace PayRoll {
namespace Employees {
// class declarations go here
}}}} // yeah, that sux
And in the .cpp file:
using namespace Contoso::Accounting::PayRoll::Employees;
There's no trouble adding resources when it is declared like this that I could find. But don't add a resource, then change the namespace name. The C++ IDE has no refactoring support whatsoever. Windows Forms development in C++/CLI isn't very popular, this would perhaps be one reason.