Redmine.Net.Api.Types.TimeEntry time_entries.Issue = new IdentifiableName { Id = AddIssue.Id }; 报错如何解决 error CS0272: 属性或索引器“Identifiable<IdentifiableName>.Id”不能用在此上下文中,因为 set 访问器不可访问
时间: 2023-12-14 19:39:25 浏览: 155
这个错误是由于 `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 如何和issue关联并给出示例代码
可以使用Redmine.Net.Api.Types.TimeEntry的IssueId属性将TimeEntry与Issue关联起来。以下是一个示例代码片段,演示如何创建一个与Issue关联的TimeEntry:
```csharp
using Redmine.Net.Api;
using Redmine.Net.Api.Types;
using System;
namespace RedmineTimeEntryExample
{
class Program
{
static void Main(string[] args)
{
var redmineManager = new RedmineManager("https://your.redmine.url", "your-api-key");
// create a new time entry
var timeEntry = new TimeEntry
{
ActivityId = 9, // set the activity ID
SpentOn = DateTime.Now.Date, // set the date
Hours = 2.5F, // set the time spent
Comments = "Some comments here", // set the comments
IssueId = 123 // set the issue ID
};
// create the time entry and associate it with the issue
var createdTimeEntry = redmineManager.CreateObject<TimeEntry>(timeEntry);
Console.WriteLine("Time entry created successfully!");
}
}
}
```
在上面的代码中,我们设置了TimeEntry的IssueId属性,将其与Issue关联起来。在创建TimeEntry时,Redmine.Net.Api会自动将其与相应的Issue关联起来。
Redmine.Net.Api.Types.TimeEntry 如何获取一个Activity
要获取一个Activity,需要先获取Redmine上所有的Activities列表,然后根据Activity的ID获取相关信息。可以使用Redmine.Net.Api来实现。
以下是获取Activities列表和获取指定Activity信息的示例代码:
```csharp
using Redmine.Net.Api;
using Redmine.Net.Api.Types;
// 创建RedmineManager实例
var redmineManager = new RedmineManager("https://redmine.example.com", "apiKey");
// 获取Activities列表
var activities = redmineManager.GetObjects<TimeEntryActivity>();
// 获取指定Activity信息
var activityId = 1; // 假设Activity的ID为1
var activity = redmineManager.GetObject<TimeEntryActivity>(activityId, include: "enumerations");
```
在获取指定Activity信息时,可以使用 `include` 参数来指定关联对象一起获取。例如上面的代码中,我们将 `include` 值设置为 `"enumerations"`,表示要获取与Activity相关联的Enumeration(例如TimeEntryActivity对应的Enumeration可能是TimeEntryActivityType)。
请注意,获取Activities列表和获取指定Activity信息都需要管理员或拥有相应权限的用户才能操作。
阅读全文