internal static unsafe new DllHostHostedManagedDllDescription CreateFromNative(IntPtr nativeDescriptionPtr)
        {
            NativeTypes.FABRIC_DLLHOST_HOSTED_MANAGED_DLL_DESCRIPTION *nativeDescription = (NativeTypes.FABRIC_DLLHOST_HOSTED_MANAGED_DLL_DESCRIPTION *)nativeDescriptionPtr;

            DllHostHostedManagedDllDescription description = new DllHostHostedManagedDllDescription();

            description.AssemblyName = NativeTypes.FromNativeString(nativeDescription->AssemblyName);

            return(description);
        }
        internal static unsafe DllHostHostedDllDescription CreateFromNative(IntPtr nativeDescriptionPtr)
        {
            NativeTypes.FABRIC_DLLHOST_HOSTED_DLL_DESCRIPTION *nativeDescription = (NativeTypes.FABRIC_DLLHOST_HOSTED_DLL_DESCRIPTION *)nativeDescriptionPtr;
            switch (nativeDescription->Kind)
            {
            case NativeTypes.FABRIC_DLLHOST_HOSTED_DLL_KIND.FABRIC_DLLHOST_HOSTED_DLL_KIND_UNMANAGED:
                return(DllHostHostedUnmanagedDllDescription.CreateFromNative(nativeDescription->Value));

            case NativeTypes.FABRIC_DLLHOST_HOSTED_DLL_KIND.FABRIC_DLLHOST_HOSTED_DLL_KIND_MANAGED:
                return(DllHostHostedManagedDllDescription.CreateFromNative(nativeDescription->Value));

            default:
                throw new ArgumentException(StringResources.Error_HostedDllKindUnknown);
            }
        }