internal static unsafe CodePackageDescription CreateFromNative(NativeTypes.FABRIC_CODE_PACKAGE_DESCRIPTION nativeDescription, string path) { string packageName = NativeTypes.FromNativeString(nativeDescription.Name); AppTrace.TraceSource.WriteNoise("CodePackageDescription.CreateFromNative", "PackageName {0}", packageName); ExeHostEntryPointDescription setupEntryPoint = null; if (nativeDescription.SetupEntryPoint != IntPtr.Zero) { setupEntryPoint = ExeHostEntryPointDescription.CreateFromNative(nativeDescription.SetupEntryPoint); } if (nativeDescription.EntryPoint == IntPtr.Zero) { AppTrace.TraceSource.WriteError("CodePackageDescription.CreateFromNative", "No EntryPoint"); throw new ArgumentException(StringResources.Error_NoEntryPoint); } var entryPoint = EntryPointDescription.CreateFromNative(nativeDescription.EntryPoint); return(new CodePackageDescription { Name = packageName, Version = NativeTypes.FromNativeString(nativeDescription.Version), ServiceManifestName = NativeTypes.FromNativeString(nativeDescription.ServiceManifestName), ServiceManifestVersion = NativeTypes.FromNativeString(nativeDescription.ServiceManifestVersion), IsShared = NativeTypes.FromBOOLEAN(nativeDescription.IsShared), #pragma warning disable 618 Path = path, #pragma warning restore 618 SetupEntryPoint = setupEntryPoint, EntryPoint = entryPoint, }); }
internal static unsafe EntryPointDescription CreateFromNative(IntPtr entryPointDescriptionPtr) { NativeTypes.FABRIC_CODE_PACKAGE_ENTRY_POINT_DESCRIPTION *nativeEntryPointDescription = (NativeTypes.FABRIC_CODE_PACKAGE_ENTRY_POINT_DESCRIPTION *)entryPointDescriptionPtr; switch (nativeEntryPointDescription->Kind) { case NativeTypes.FABRIC_CODE_PACKAGE_ENTRY_POINT_KIND.FABRIC_CODE_PACKAGE_ENTRY_POINT_KIND_EXEHOST: return(ExeHostEntryPointDescription.CreateFromNative(nativeEntryPointDescription->Value)); case NativeTypes.FABRIC_CODE_PACKAGE_ENTRY_POINT_KIND.FABRIC_CODE_PACKAGE_ENTRY_POINT_KIND_DLLHOST: return(DllHostEntryPointDescription.CreateFromNative(nativeEntryPointDescription->Value)); case NativeTypes.FABRIC_CODE_PACKAGE_ENTRY_POINT_KIND.FABRIC_CODE_PACKAGE_ENTRY_POINT_KIND_CONTAINERHOST: return(ContainerHostEntryPointDescription.CreateFromNative(nativeEntryPointDescription->Value)); default: AppTrace.TraceSource.WriteError("EntryPointDescription.CreateFromNative", "Unknown code package entry point type : {0}", nativeEntryPointDescription->Kind); ReleaseAssert.Failfast(string.Format(CultureInfo.CurrentCulture, StringResources.Error_UnknownCodePackageEntryType_Formatted, nativeEntryPointDescription->Kind)); return(null); } }