diff --git a/LuYao.ResourcePacker.SourceGenerator/ResourcePackageGenerator.cs b/LuYao.ResourcePacker.SourceGenerator/ResourcePackageGenerator.cs
index 767f489..6e977a8 100644
--- a/LuYao.ResourcePacker.SourceGenerator/ResourcePackageGenerator.cs
+++ b/LuYao.ResourcePacker.SourceGenerator/ResourcePackageGenerator.cs
@@ -219,6 +219,8 @@ private static string GenerateSourceCode(string assemblyName, string className,
var safeKey = key; // Already safe from ResourceKeyHelper
var methodName = $"Read{Capitalize(safeKey)}";
var asyncMethodName = $"Read{Capitalize(safeKey)}Async";
+ var asyncStringMethodName = $"Read{Capitalize(safeKey)}AsStringAsync";
+ var stringMethodName = $"Read{Capitalize(safeKey)}AsString";
// Async byte array method
sb.AppendLine($" /// ");
@@ -244,7 +246,7 @@ private static string GenerateSourceCode(string assemblyName, string className,
sb.AppendLine($" /// ");
sb.AppendLine($" /// Reads the '{key}' resource as a string asynchronously using UTF-8 encoding.");
sb.AppendLine($" /// ");
- sb.AppendLine($" public static System.Threading.Tasks.Task {asyncMethodName}AsString()");
+ sb.AppendLine($" public static System.Threading.Tasks.Task {asyncStringMethodName}()");
sb.AppendLine($" {{");
sb.AppendLine($" return Reader.ReadResourceAsStringAsync(Keys.{safeKey});");
sb.AppendLine($" }}");
@@ -255,7 +257,7 @@ private static string GenerateSourceCode(string assemblyName, string className,
sb.AppendLine($" /// Reads the '{key}' resource as a string asynchronously using the specified encoding.");
sb.AppendLine($" /// ");
sb.AppendLine($" /// The encoding to use when converting bytes to string.");
- sb.AppendLine($" public static System.Threading.Tasks.Task {asyncMethodName}AsString(System.Text.Encoding encoding)");
+ sb.AppendLine($" public static System.Threading.Tasks.Task {asyncStringMethodName}(System.Text.Encoding encoding)");
sb.AppendLine($" {{");
sb.AppendLine($" return Reader.ReadResourceAsStringAsync(Keys.{safeKey}, encoding);");
sb.AppendLine($" }}");
@@ -265,7 +267,7 @@ private static string GenerateSourceCode(string assemblyName, string className,
sb.AppendLine($" /// ");
sb.AppendLine($" /// Reads the '{key}' resource as a string synchronously using UTF-8 encoding.");
sb.AppendLine($" /// ");
- sb.AppendLine($" public static string {methodName}AsString()");
+ sb.AppendLine($" public static string {stringMethodName}()");
sb.AppendLine($" {{");
sb.AppendLine($" return Reader.ReadResourceAsString(Keys.{safeKey});");
sb.AppendLine($" }}");
@@ -276,7 +278,7 @@ private static string GenerateSourceCode(string assemblyName, string className,
sb.AppendLine($" /// Reads the '{key}' resource as a string synchronously using the specified encoding.");
sb.AppendLine($" /// ");
sb.AppendLine($" /// The encoding to use when converting bytes to string.");
- sb.AppendLine($" public static string {methodName}AsString(System.Text.Encoding encoding)");
+ sb.AppendLine($" public static string {stringMethodName}(System.Text.Encoding encoding)");
sb.AppendLine($" {{");
sb.AppendLine($" return Reader.ReadResourceAsString(Keys.{safeKey}, encoding);");
sb.AppendLine($" }}");
diff --git a/README.md b/README.md
index e823912..dcb33d9 100644
--- a/README.md
+++ b/README.md
@@ -82,9 +82,9 @@ Console.WriteLine(R.Keys.config);
Console.WriteLine(R.Keys.template);
// Read resources using generated methods
-string message = await R.ReadMessageAsyncAsString();
+string message = await R.ReadMessageAsStringAsync();
byte[] configBytes = await R.ReadConfigAsync();
-string template = await R.ReadTemplateAsyncAsString();
+string template = await R.ReadTemplateAsStringAsync();
// Access the underlying reader if needed
ResourcePackageReader reader = R.Reader;
@@ -170,10 +170,10 @@ namespace YourAssembly
public static ResourcePackageReader Reader { get; }
public static Task ReadTestAsync() { ... }
- public static Task ReadTestAsyncAsString() { ... }
+ public static Task ReadTestAsStringAsync() { ... }
public static Task ReadConfigAsync() { ... }
- public static Task ReadConfigAsyncAsString() { ... }
+ public static Task ReadConfigAsStringAsync() { ... }
}
}
```
diff --git a/docs/blog.md b/docs/blog.md
index 2ff41a7..d9fe835 100644
--- a/docs/blog.md
+++ b/docs/blog.md
@@ -121,9 +121,9 @@ Console.WriteLine(R.Keys.config);
Console.WriteLine(R.Keys.template);
// 使用生成的强类型方法读取资源
-string message = await R.ReadMessageAsyncAsString();
+string message = await R.ReadMessageAsStringAsync();
byte[] configBytes = await R.ReadConfigAsync();
-string template = await R.ReadTemplateAsyncAsString();
+string template = await R.ReadTemplateAsStringAsync();
// 如果需要,也可以访问底层的 Reader
ResourcePackageReader reader = R.Reader;
@@ -266,7 +266,7 @@ using var stream = reader.GetStream("large-text-file");
3. **代码生成**:生成包含以下内容的 `R.g.cs` 文件:
- `R.Keys` 嵌套类:包含所有资源键常量
- `R.Reader` 静态属性:提供 `ResourcePackageReader` 实例
- - 强类型方法:为每个资源生成 `ReadXxxAsync()` 和 `ReadXxxAsyncAsString()` 方法
+ - 强类型方法:为每个资源生成 `ReadXxxAsync()` 和 `ReadXxxAsStringAsync()` 方法
### 命名空间处理
@@ -326,7 +326,7 @@ Resources/
```csharp
// ✅ 推荐:强类型,有智能提示
-var content = await R.ReadAppConfigAsyncAsString();
+var content = await R.ReadAppConfigAsStringAsync();
// ❌ 不推荐:魔法字符串,容易出错
var content = await reader.ReadResourceAsStringAsync("app-config");
@@ -337,7 +337,7 @@ var content = await reader.ReadResourceAsStringAsync("app-config");
**同一项目内的资源访问**:
```csharp
// 在项目内部直接使用 R 类
-var data = await R.ReadDataAsyncAsString();
+var data = await R.ReadDataAsStringAsync();
```
**跨程序集访问的限制**:
@@ -347,10 +347,10 @@ var data = await R.ReadDataAsyncAsString();
1. **推荐方案**:在每个需要资源的项目中独立管理资源
```csharp
// Project1 中
- var config1 = await R.ReadConfigAsyncAsString();
+ var config1 = await R.ReadConfigAsStringAsync();
// Project2 中
- var config2 = await R.ReadConfigAsyncAsString();
+ var config2 = await R.ReadConfigAsStringAsync();
```
2. **传递数据而非 R 类**:如果确实需要跨项目共享资源,可以在资源所在的项目中读取后传递数据
@@ -360,7 +360,7 @@ var data = await R.ReadDataAsyncAsString();
{
public static async Task GetConfigAsync()
{
- return await R.ReadConfigAsyncAsString();
+ return await R.ReadConfigAsStringAsync();
}
}
diff --git a/examples/ExampleProject/Program.cs b/examples/ExampleProject/Program.cs
index 91786b5..cd01f06 100644
--- a/examples/ExampleProject/Program.cs
+++ b/examples/ExampleProject/Program.cs
@@ -54,12 +54,12 @@ static async Task Main(string[] args)
// Read resources using generated methods
Console.WriteLine("--- Reading 'config' using generated method ---");
- string config = await R.ReadConfigAsyncAsString();
+ string config = await R.ReadConfigAsStringAsync();
Console.WriteLine(config);
Console.WriteLine();
Console.WriteLine("--- Reading 'message' using generated method ---");
- string messageGenerated = await R.ReadMessageAsyncAsString();
+ string messageGenerated = await R.ReadMessageAsStringAsync();
Console.WriteLine(messageGenerated);
Console.WriteLine();
diff --git a/examples/RootNamespaceTest/Program.cs b/examples/RootNamespaceTest/Program.cs
index 3bc9069..1b2a87d 100644
--- a/examples/RootNamespaceTest/Program.cs
+++ b/examples/RootNamespaceTest/Program.cs
@@ -31,10 +31,10 @@ public static async Task Main(string[] args)
// Test reading resources
try
{
- var sampleText = await R.ReadSampleAsyncAsString();
+ var sampleText = await R.ReadSampleAsStringAsync();
Console.WriteLine($"Sample resource content: {sampleText}");
- var configJson = await R.ReadConfigAsyncAsString();
+ var configJson = await R.ReadConfigAsStringAsync();
Console.WriteLine($"Config resource content: {configJson}");
Console.WriteLine();