C# WPF 动态创建程序集并保存 MAC 地址到 ManifestResource
要在 C# WPF 中创建一个动态程序集,并将 MAC 地址保存到程序集的 ManifestResource 中,可以按照以下步骤进行操作:\n\n1. 创建一个新的 C# WPF 项目。\n\n2. 在项目中添加一个新的类,用于保存 MAC 地址。可以命名为 `MacAddress.cs`。\n\ncsharp\nusing System;\n\nnamespace YourNamespace\n{\n public static class MacAddress\n {\n public static string GetMacAddress()\n {\n // 在这里编写获取 MAC 地址的代码\n // 例如,使用 NetworkInterface 类获取 MAC 地址\n // 返回一个字符串表示 MAC 地址\n }\n }\n}\n\n\n3. 在项目中的 `Properties` 文件夹下,添加一个新的资源文件。可以命名为 `Resources.resx`。\n\n4. 打开 `Resources.resx` 文件,在资源文件编辑器中,添加一个新的字符串资源。\n\n - Name: 可以命名为 `MacAddressResource`\n - Value: 可以设置为空字符串,稍后会在代码中动态设置其值。\n\n5. 在 `App.xaml.cs` 文件中,添加以下代码,以在应用程序启动时动态设置 `MacAddressResource` 的值。\n\ncsharp\nusing System;\nusing System.IO;\nusing System.Reflection;\nusing System.Resources;\nusing System.Windows;\n\nnamespace YourNamespace\n{\n public partial class App : Application\n {\n protected override void OnStartup(StartupEventArgs e)\n {\n base.OnStartup(e);\n\n // 获取 MAC 地址\n string macAddress = MacAddress.GetMacAddress();\n\n // 获取程序集\n Assembly assembly = Assembly.GetExecutingAssembly();\n\n // 获取资源管理器\n ResourceManager resourceManager = new ResourceManager("YourNamespace.Properties.Resources", assembly);\n\n // 打开资源文件\n using (ResourceWriter resourceWriter = new ResourceWriter(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Resources.resources")))\n {\n // 设置 MAC 地址到资源\n resourceWriter.AddResource("MacAddressResource", macAddress);\n\n // 保存资源文件\n resourceWriter.Generate();\n }\n }\n }\n}\n\n\n6. 确保在 `App.xaml` 文件中,设置了 `App.xaml.cs` 作为应用程序的启动对象。\n\nxaml\n<Application x:Class="YourNamespace.App"\n xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"\n xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"\n StartupUri="MainWindow.xaml">\n <Application.Resources>\n \n </Application.Resources>\n</Application>\n\n\n7. 现在,当应用程序启动时,`MacAddressResource` 将被动态设置为 MAC 地址,并保存到程序集的 ManifestResource 中。您可以在其他地方通过访问资源来获取 MAC 地址。\n\ncsharp\nusing System;\nusing System.IO;\nusing System.Reflection;\nusing System.Resources;\n\nnamespace YourNamespace\n{\n public class SomeClass\n {\n public void SomeMethod()\n {\n // 获取程序集\n Assembly assembly = Assembly.GetExecutingAssembly();\n\n // 获取资源管理器\n ResourceManager resourceManager = new ResourceManager("YourNamespace.Properties.Resources", assembly);\n\n // 获取保存的 MAC 地址\n string macAddress = resourceManager.GetString("MacAddressResource");\n\n // 使用 MAC 地址进行其他操作\n }\n }\n}\n\n\n请注意,由于资源文件是在应用程序启动时创建和保存的,因此如果 MAC 地址在启动后发生变化,需要在需要使用 MAC 地址的地方重新加载资源文件以获取最新的 MAC 地址。
原文地址: https://www.cveoy.top/t/topic/pyLB 著作权归作者所有。请勿转载和采集!