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

            DllHostIsolationPolicy isolationPolicy = DllHostIsolationPolicy.Invalid;

            switch (nativeDescription->IsolationPolicyType)
            {
            case NativeTypes.FABRIC_DLLHOST_ISOLATION_POLICY.FABRIC_DLLHOST_ISOLATION_POLICY_SHARED_DOMAIN:
                isolationPolicy = DllHostIsolationPolicy.SharedDomain;
                break;

            case NativeTypes.FABRIC_DLLHOST_ISOLATION_POLICY.FABRIC_DLLHOST_ISOLATION_POLICY_DEDICATED_DOMAIN:
                isolationPolicy = DllHostIsolationPolicy.DedicatedDomain;
                break;

            case NativeTypes.FABRIC_DLLHOST_ISOLATION_POLICY.FABRIC_DLLHOST_ISOLATION_POLICY_DEDICATED_PROCESS:
                isolationPolicy = DllHostIsolationPolicy.DedicatedProcess;
                break;

            default:
                AppTrace.TraceSource.WriteError("DllHostEntryPointDescription.CreateFromNative", "Unknown isolation policy type : {0}", nativeDescription->IsolationPolicyType);
                ReleaseAssert.Failfast(string.Format(CultureInfo.CurrentCulture, StringResources.Error_UnknownIsolationPolicyType_Formatted, nativeDescription->IsolationPolicyType));
                break;
            }

            List <DllHostHostedDllDescription> hostedDlls = new List <DllHostHostedDllDescription>();

            if (nativeDescription->HostedDlls != IntPtr.Zero)
            {
                NativeTypes.FABRIC_DLLHOST_HOSTED_DLL_DESCRIPTION_LIST *nativeHostedDllDescriptionList =
                    (NativeTypes.FABRIC_DLLHOST_HOSTED_DLL_DESCRIPTION_LIST *)nativeDescription->HostedDlls;

                for (int i = 0; i < nativeHostedDllDescriptionList->Count; ++i)
                {
                    hostedDlls.Add(DllHostHostedDllDescription.CreateFromNative(
                                       nativeHostedDllDescriptionList->Items +
                                       (i * Marshal.SizeOf(typeof(NativeTypes.FABRIC_DLLHOST_HOSTED_DLL_DESCRIPTION)))));
                }
            }

            return(new DllHostEntryPointDescription()
            {
                IsolationPolicy = isolationPolicy,
                HostedDlls = hostedDlls
            });
        }
 private void IsolationPolicyTypeEnumTestHelper(NativeTypes.FABRIC_DLLHOST_ISOLATION_POLICY native, DllHostIsolationPolicy isolationPolicy)
 {
     HelperInstance.ParseTestHelper((info) => info.IsolationPolicyType = native, (description) => description.IsolationPolicy = isolationPolicy);
 }