小编red*_*t84的帖子

使用Newtonsoft Json.Net反序列化为IEnumerable类

我有一个项目,目前正在使用Json.Net为Json反序列化类,如下所示:

public class Foo {
    public Guid FooGuid { get; set; }
    public string Name { get; set; }
    public List<Bar> Bars { get; set; }
}

public class Bar {
    public Guid BarGuid { get; set; }
    public string Description { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

到目前为止它工作正常.

为了使迭代更简单,我创建了Foo类实现IEnumerable<Bar>:

public class Foo : IEnumerable<Bar> {
    public Guid FooGuid { get; set; }
    public string Name { get; set; }
    public List<Bar> Bars { get; set; }

    public …
Run Code Online (Sandbox Code Playgroud)

.net c# ienumerable json.net xamarin.ios

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

在扩展中为通用参数添加约束

我有这个功能:

func flatten<Key: Hashable, Value>(dict: Dictionary<Key, Optional<Value>>) -> Dictionary<Key, Value> {
    var result = [Key: Value]()
    for (key, value) in dict {
        guard let value = value else { continue }
        result[key] = value
    }
    return result
}
Run Code Online (Sandbox Code Playgroud)

如您所见,它将[Key: Value?]字典转换为[Key: Value]一个字典(没有可选字段).

我想Dictionary用一个新方法扩展该类只适用于值为Optional任何类型的类,但我无法为字典的泛型参数添加约束.

这是我试过的:

extension Dictionary where Value: Optional<Any> {
    func flatten() -> [Key: Any] {
        var result = [Key: Any]()
        for (key, value) in self {
            guard let value = value else …
Run Code Online (Sandbox Code Playgroud)

generics dictionary swift swift-extensions swift2

12
推荐指数
2
解决办法
1504
查看次数

Sqlite扩展无法按预期工作

我正在开发一个WinRT应用程序.我想使用sqlite-net-extensions到的支持OneToMany,ManyToMany.

using SQLiteNetExtensions.Attributes;
using SQLite;

[Table("WorkFlow")]
public class Workflow
{
    [PrimaryKey, AutoIncrement]
    public int WorkflowId { get; set; }
    public string Name { get; set; }
    public int Revision { get; set; }
    [OneToMany]
    public List<Step> Steps { get; set; }
}

[Table("Step")]
public class Step
{
    public string Type { get; set; }
    public string Description { get; set; }
    [ManyToOne]
    public Workflow Workflow { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

当我尝试为数据库生成表时,它会引发异常:

app_name.exe中出现"System.NotSupportedException"类型的异常但未在用户代码中处理其他信息:不了解System.Collections.Generic.List`1 [app_name.Model.modelName]

这来自 …

c# windows-runtime windows-store-apps sqlite-net sqlite-net-extensions

10
推荐指数
2
解决办法
4630
查看次数

UIAlertController的文本字段宽度比平常小

所以我有一个UIAlertControllerUITextField添加的输入,但由于某些原因,文本框似乎远远小于它应该是.知道为什么吗?

这是截图

警报视图文本域图像

这是守则

UIAlertController *alert = [UIAlertController alertControllerWithTitle:@"This is title"
                                                               message:@"This is message"
                                                        preferredStyle:UIAlertControllerStyleAlert];

[alert addTextFieldWithConfigurationHandler:^(UITextField * _Nonnull textField) {

    textField.keyboardType = UIKeyboardTypeNumberPad;
    textField.placeholder = @"I am a placeholder";

}];


UIAlertAction *okAction = [UIAlertAction actionWithTitle:@"Submit"
                                              style:UIAlertActionStyleDefault
                                            handler:nil];

[alert addAction:okAction];


[self presentViewController:alert animated:YES completion:nil];
Run Code Online (Sandbox Code Playgroud)

谢谢!

objective-c ios uialertcontroller xcode7

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

使用RestKit序列化JSON时忽略nil属性

我有这门课:

@interface MovieStatus : NSObject
@property (nonatomic, strong) NSNumber* seen;
@property (nonatomic, strong) NSNumber* watchlist;
@end
Run Code Online (Sandbox Code Playgroud)

其中两个属性都表示可选的可空布尔值.我通过使用RestKit将此对象发送到服务器RKObjectManager并创建了适当的映射.但在序列化对象时,我无法从POST数据中跳过该属性.

例如,这段代码:

RKLogConfigureByName("*", RKLogLevelTrace);

RKObjectManager* manager = [RKObjectManager managerWithBaseURL:[NSURL URLWithString:@"http://www.example.com/v1"]];
manager.requestSerializationMIMEType = RKMIMETypeJSON;

RKObjectMapping* requestMapping = [RKObjectMapping requestMapping];
[requestMapping addAttributeMappingsFromArray:@[@"seen", @"watchlist"]];

RKRequestDescriptor* requestDescriptor = [RKRequestDescriptor requestDescriptorWithMapping:requestMapping objectClass:[MovieStatus class] rootKeyPath:nil method:RKRequestMethodPOST];
[manager addRequestDescriptor:requestDescriptor];

RKRoute* route = [RKRoute routeWithClass:[MovieStatus class] pathPattern:@"status" method:RKRequestMethodPOST];
[manager.router.routeSet addRoute:route];


MovieStatus* status = [[MovieStatus alloc] init];
status.seen = @(YES);
[manager postObject:status path:nil parameters:nil success:nil failure:nil];
Run Code Online (Sandbox Code Playgroud)

正在发送JSON:

{
  "seen": true,
  "watchlist": …
Run Code Online (Sandbox Code Playgroud)

json objective-c ios restkit

5
推荐指数
1
解决办法
1379
查看次数

使用默认值的 Quartz 调度器调度作业

我们有一个使用 Spring Framework 在 Tomcat 中运行的 Web 应用程序。我们需要为循环操作添加一些预定的作业。我们为此遇到了 Quartz 调度器,并遵循了使用 Quartz 和 Spring 配置作业教程,并按预期安排和运行了作业。

所以我们有一些任务是在应用程序启动时安排的。现在我们希望用户手动运行作业并更改作业的触发器,但我们需要将这些更改持久化到数据库中。因此,当应用程序启动时,它会读取持久化的任务,如果它们不存在,则从 spring 描述符文件中加载默认任务。

为简单起见,让我们假设我们正在使用示例中的 beans.xml 文件:

<bean id="processToExecute" class="com.mycompany.ProcessToExecute" />

<bean name="processToExecuteJob" class="org.springframework.scheduling.quartz.JobDetailBean">
    <property name="jobClass" value="com.mycompany.ProcessToExecuteJob" />
    <property name="jobDataAsMap">
        <map>
            <entry key="processToExecute" value-ref="processToExecute" />
        </map>
    </property>
</bean>

<bean id="cronTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean">
    <property name="jobDetail" ref="processToExecuteJob" />
    <property name="cronExpression" value="0/5 * * * * ?" />
</bean>

<bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
    <property name="jobDetails">
        <list>
            <ref bean="processToExecuteJob" />
        </list>
    </property>
    <property name="triggers">
        <list>
            <ref bean="simpleTrigger" />
        </list>
    </property> …
Run Code Online (Sandbox Code Playgroud)

java spring quartz-scheduler

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