小编ija*_*vid的帖子

将Google日历解析为DDay.iCal

我正在开发通过Google API将Google日历解析为DDay.iCal的应用程序

主要属性,属性很容易处理... ev.Summary = evt.Title.Text;

问题是当我得到一个重复的事件时,XML包含一个字段,如:

<gd:recurrence>
    DTSTART;VALUE=DATE:20100916
    DTEND;VALUE=DATE:20100917
    RRULE:FREQ=YEARLY
</gd:recurrence>
Run Code Online (Sandbox Code Playgroud)

要么

<gd:recurrence>
  DTSTART:20100915T220000Z
  DTEND:20100916T220000Z
  RRULE:FREQ=YEARLY;BYMONTH=9;WKST=SU"
</gd:recurrence>
Run Code Online (Sandbox Code Playgroud)

使用以下代码:

    String[] lines = 
evt.Recurrence.Value.Split(new char[] { '\n', '\r' }, StringSplitOptions.RemoveEmptyEntries);

                    foreach (String line in lines)
                    {

                        if (line.StartsWith("R"))
                        {
                            RecurrencePattern rp = new RecurrencePattern(line);
                            ev.RecurrenceRules.Add(rp);
                        }
                        else 
                        {
                            ISerializationContext ctx = new SerializationContext();
                            ISerializerFactory factory = new DDay.iCal.Serialization.iCalendar.SerializerFactory();

                            ICalendarProperty property = new CalendarProperty();

                            IStringSerializer serializer = factory.Build(property.GetType(), ctx) as IStringSerializer;

                            property = (ICalendarProperty)serializer.Deserialize(new StringReader(line));

                            ev.Properties.Add(property); …
Run Code Online (Sandbox Code Playgroud)

c# icalendar google-api dday deserialization

6
推荐指数
1
解决办法
2095
查看次数

使用Tile视图时在C#ListView中显示子项

我正在使用ListView组件在我的程序中显示一些已保存的配置文件,每个配置文件都有一个图标和一个标题.所以我用过,ListView with View属性设置为Tile(也是应用了灌浆)

我怎么不添加一些关于条目的描述文本(不是工具提示).我可以像Windows资源管理器那样做吗?

Windows资源管理器平铺视图,项目详细信息

c# listview

3
推荐指数
1
解决办法
6171
查看次数

如何从C#将PWCHAR传递给C++ DLL

我有一个用C++编写的dll,我想用C#调用它.函数输出outputChar和deadChar,deadChar变量也由C++函数读取.

我试图以不同的方式从C#调用函数,但是我一直得到AccessViolationException:"试图读取或写入受保护的内存.这通常表明其他内存已损坏."

C++ DLL:

extern "C" _declspec (dllexport) int convertVirtualKeyToWChar(int virtualKey, PWCHAR outputChar, PWCHAR deadChar);
Run Code Online (Sandbox Code Playgroud)

C#代码1:

[DllImport("keylib.dll")]
static extern int convertVirtualKeyToWChar(int virtualKey,
               StringBuilder output,
               StringBuilder deadchar);
Run Code Online (Sandbox Code Playgroud)

C#代码2:

static extern int convertVirtualKeyToWChar(int virtualKey,
           out char output,
           ref char deadchar);
Run Code Online (Sandbox Code Playgroud)

c# c++ dll pinvoke dllimport

2
推荐指数
1
解决办法
1026
查看次数

标签 统计

c# ×3

c++ ×1

dday ×1

deserialization ×1

dll ×1

dllimport ×1

google-api ×1

icalendar ×1

listview ×1

pinvoke ×1