error CS0029: 无法将类型“int”隐式转换为“Redmine.Net.Api.Types.IdentifiableName” 如何解决
时间: 2023-12-14 17:39:20 浏览: 243
这个错误是因为你尝试将一个int类型隐式转换为IdentifiableName类型,但编译器无法识别这种转换。你需要将int类型显式转换为IdentifiableName类型。
你可以尝试像这样进行显式转换:
```csharp
int myInt = 123;
IdentifiableName myIdentifiableName = new IdentifiableName((long)myInt);
```
或者你可以将int类型转换为字符串类型,然后将其传递给IdentifiableName构造函数:
```csharp
int myInt = 123;
IdentifiableName myIdentifiableName = new IdentifiableName(myInt.ToString());
```
希望这能帮助你解决问题。
相关问题
Redmine.Net.Api.Types.TimeEntry time_entries.Issue = new IdentifiableName { Id = AddIssue.Id }; 报错如何解决 error CS0272: 属性或索引器“Identifiable<IdentifiableName>.Id”不能用在此上下文中,因为 set 访问器不可访问
这个错误是由于 `IdentifiableName` 类中的 `Id` 属性的 `set` 访问器不可访问导致的。
可以尝试检查一下 `IdentifiableName` 类中 `Id` 属性的访问修饰符是否为 `private`,如果是,则需要将其修改为 `public` 或者添加一个 `public` 的 `set` 访问器来解决该问题。
例如:
```csharp
public class IdentifiableName
{
public int Id { get; set; }
}
```
如果 `IdentifiableName` 类已经是一个第三方库或者不能修改源代码的话,可以考虑使用反射来设置 `Id` 属性的值。
例如:
```csharp
var issue = new Redmine.Net.Api.Types.TimeEntry();
var identifiableName = new IdentifiableName { Id = AddIssue.Id };
var property = identifiableName.GetType().GetProperty("Id");
property.SetValue(identifiableName, 123); // 设置 Id 属性的值
issue.Issue = identifiableName;
```
Redmine.Net.Api.Types.TimeEntry 如何获取一个Activity
要获取一个活动(Activity),可以使用 Redmine.Net.Api.Types.TimeEntry 的 Activity 属性。Activity 对象包含了活动的名称、ID、费率等信息。
以下是获取 TimeEntry 对象的 Activity 的示例代码:
```csharp
using Redmine.Net.Api;
using Redmine.Net.Api.Types;
var redmineManager = new RedmineManager(redmineUrl, apiKey);
var timeEntry = redmineManager.GetObject<TimeEntry>(timeEntryId.ToString(), new NameValueCollection { { "include", "activity" } });
var activity = timeEntry.Activity;
Console.WriteLine($"Activity name: {activity.Name}");
Console.WriteLine($"Activity ID: {activity.Id}");
```
在上面的代码中,我们使用 RedmineManager 的 GetObject 方法获取 TimeEntry 对象,并传递了一个 NameValueCollection 参数来指示我们需要包含 Activity 信息。然后,我们可以从 TimeEntry 对象的 Activity 属性中获取 Activity 对象,并访问其属性。
阅读全文