小编use*_*582的帖子

使用Gson将Java对象转换为JsonObject

我有一个Java对象,我想将其输出为JSON字符串.但我想避免在Java对象中打印出属性.我知道我可以使用GsonBuilder的excludeFieldsWithoutExposeAnnotation()方法来做到这一点.但是,我想我会尝试在打印之前从JsonObject中删除属性的替代方法.以下代码有效:

Gson gson = new GsonBuilder().setDateFormat("yyyy-MM-dd' 'HH:mm:ss").create();
String javaObjectString = gson.toJson(javaObject);
//javaObjectString currently include "property":"value"
JsonElement jsonElement = gson.toJsonTree(javaObjectString, javaObject.getClass());
JsonObject jsonObject = (JsonObject) jsonElement;
jsonObject.remove("property");
javaObjectString = gson.toJson(jsonObject);
//javaObjectString currently no longer includes "property":"value"
Run Code Online (Sandbox Code Playgroud)

但是,它感觉很糟糕,因为我必须将Java对象输出到String,然后从String创建一个JsonElement,然后将JsonElement转换为JsonObject.

有没有更直接的方法从Java对象转到JsonObject?

java json gson

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

从非域计算机连接到域SQL Server 2005

几天前我问了一个问题(使用Windows身份验证从非域计算机访问SQL Server 2005),这提出了一些有趣但不可用的建议.我想再次提出这个问题,但要弄清楚我的约束是什么:

我有一个Windows域,其中一台机器运行SQL Server 2005,并配置为仅支持Windows身份验证.我想在同一网络上的计算机上运行C#客户端应用程序,但不在域上,并访问SQL Server 2005实例上的数据库.

我不能在任何一台机器上创建或修改操作系统或SQL Server用户,我也不能对权限或模拟进行任何更改,我也不能使用runas.

我知道我可以使用以下四个参数编写可以连接到SQL Server数据库的Perl和Java应用程序:服务器名称,数据库名称,用户名(域名为domain\user)和密码.

在C#中,我尝试过各种各样的事情:

string connectionString = "Data Source=server;Initial Catalog=database;User Id=domain\user;Password=password";
SqlConnection connection = new SqlConnection(connectionString);
connection.Open();
Run Code Online (Sandbox Code Playgroud)

并尝试将集成安全性设置为真假,但似乎没有任何效果.我想在C#中做什么根本不可能?

感谢任何帮助,马丁

.net c# sql-server active-directory sql-authentication

8
推荐指数
2
解决办法
5010
查看次数

DLL被标记为DELETEPENDING

我在我的一个Windows机器上运行应用程序时遇到问题.我无法在其他类似的Windows机器上复制它,它刚刚开始发生.情况如下:

  1. 使用Visual Studio,我可以构建一个我编写的应用程序.它构建了一个可执行文件:Application.exe,我可以在它的bin/Debug目录中看到这个可执行文件以及我知道该应用程序所依赖的所有DLL,包括Microsoft.Windows.Azure.Configuration.dll.

  2. 当我运行应用程序时,应用程序停止运行,当我来调查问题时,我可以看到Microsoft.Windows.Azure.Configuration.dll已重命名为Microsoft.WindowsAzure.Configuration.dll.5502888.DeletePending. 5502888.DeletePending.5502904.DeletePending.5502919.DeletePending.5502935.DeletePending.5502950.DeletePending

我以前从未见过这种行为,虽然我已经在这台机器上运行了一年左右的相同应用程序.有谁知道会发生什么?

谢谢你的帮助.

.net windows dll visual-studio

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

Android:如何以编程方式添加按钮进行查看

在我的Android活动中,我创建了一个扩展SurfaceView的自定义视图(使用MonoDroid,语法略有不同):

class FriendsView : SurfaceView
{
    ...

    public FriendsView(Context context) : base(context)
    {

        ... create my custom view ...

    }


}
Run Code Online (Sandbox Code Playgroud)

在我的Activity类中,我将内容视图设置为视图:

protected override void OnCreate(Bundle bundle)
{

    base.OnCreate(bundle);

    ViewGroup.LayoutParams layoutParams = new ViewGroup.LayoutParams(ViewGroup.LayoutParams.FillParent, ViewGroup.LayoutParams.FillParent);

    FriendsView friendsView = new FriendsView(this);

    SetContentView(friendsView, layoutParams);

}
Run Code Online (Sandbox Code Playgroud)

我想在视图中添加一个按钮,但无法解决如何执行此操作.我读过的所有内容都是从main.xml的角度出发的,但是我没有看到如何使用它来声明一个在我的视图中可见的按钮.同样,我无法在Activity或View类中找到一个方法,它允许我以编程方式添加Button对象.

我确信我在概念上遗漏了一些东西,但欢迎任何帮助让我朝着正确的方向前进.

android view add button

7
推荐指数
2
解决办法
6万
查看次数

为 .Net Core 3.1 应用程序配置 log4net 的最简单的正确方法

我正在努力理解配置 log4net 以在 .Net Core 3.1 应用程序中使用的最简单方法。该应用程序使用的是 log4net 2.0.8。所以:

有没有办法使用 application.runtimeconfig.json 文件来配置来做到这一点?如果是这样,我会向应用程序添加什么代码来告诉它使用这些设置 - 例如:

log4net.Config.XmlConfigurator.Configure();
Run Code Online (Sandbox Code Playgroud)

如果这是不可能的,那么添加配置文件(比如 log4net.xml)并告诉应用程序使用它的最简单方法是什么?

我想暂时将所有日志记录定向到一个文件,比如 Temp.log。我看过很多 log4net 页面,但他们要么谈论使用在新的 .Net Core 3.1 项目中不存在的 Assembly.Info.cs,要么似乎以编程方式设置了我想避免的 log4net 配置。我原以为这很容易,所以如果我错过了一个明显的方法,我深表歉意。

.net log4net log4net-configuration .net-core

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

更新位置时,Android 2.3模拟器崩溃

我正在使用Eclipse编写和调试Android应用程序.我需要做的一件事是更新设备的位置,所以我尝试使用模拟器控制窗口中的位置控制面板.在"手动"选项卡上,选择"十进制",输入有效的纬度和经度,然后单击"发送".

不幸的是,接下来发生的事情是模拟器崩溃(下面的logcat输出).这是一个已知问题,如果有,是否有解决方法?感谢任何帮助,马丁

02-13 08:54:23.128: INFO/DEBUG(30): *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
02-13 08:54:23.128: INFO/DEBUG(30): Build fingerprint: 'generic/sdk/generic:2.3.3/GRI34/101070:eng/test-keys'
02-13 08:54:23.138: INFO/DEBUG(30): pid: 74, tid: 219  >>> system_server <<<
02-13 08:54:23.138: INFO/DEBUG(30): signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 00000000
02-13 08:54:23.138: INFO/DEBUG(30):  r0 00000000  r1 4081c038  r2 41ae0114  r3 473d9c74
02-13 08:54:23.148: INFO/DEBUG(30):  r4 0000012e  r5 00000000  r6 4081c038  r7 41ae0114
02-13 08:54:23.148: INFO/DEBUG(30):  r8 80701321  r9 80702240  10 00100000 …
Run Code Online (Sandbox Code Playgroud)

crash android location emulation

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

maven buildnumber插件错误scm url不能为null

我是Maven的新用户,并且很难让buildnumber-maven-plugin达到我的期望。本质上,我希望maven构建项目并创建结果的JAR文件,并在manifest.mf文件中设置内部版本号。我将在下面包含大部分pom.xml文件。我已经发布了一个相关的问题,但是这个问题是关于另一个问题的!

当我运行mvn clean compile软件包时,我看到以下错误:

[ERROR] Failed to execute goal org.codehaus.mojo:buildnumber-maven-plugin:1.4:create (buildnumber) on project xcase: Execution buildnumber of goal org.codehaus.mojo:buildnumber-maven-plugin:1.4:create failed: The scm url cannot be null. -> [Help 1]
Run Code Online (Sandbox Code Playgroud)

我已经将doCheck和doUpdate都设置为false,所以不知道为什么要参与SCM。我的解决方法是添加一些虚拟SCM配置,但这感觉很笨拙。有没有更好的办法?

  <scm>
    <connection>scm:svn:http://127.0.0.1/dummy</connection>
    <developerConnection>scm:svn:https://127.0.0.1/dummy</developerConnection>
    <tag>HEAD</tag>
    <url>http://127.0.0.1/dummy</url>
  </scm>
Run Code Online (Sandbox Code Playgroud)

这是我的pom.xml文件的build部分:

  <build>
    <outputDirectory>build</outputDirectory>
    <plugins>
      <plugin>
        <artifactId>buildnumber-maven-plugin</artifactId>
        <configuration>
          <buildNumberPropertyName>buildNumber</buildNumberPropertyName>
          <doCheck>false</doCheck>
          <doUpdate>false</doUpdate>
          <format>{0,number,integer}</format>
          <items>
            <item>buildNumber</item>
          </items>
          <revisionOnScmFailure>true</revisionOnScmFailure>
        </configuration>
        <executions>
          <execution>
            <goals>
              <goal>create</goal>
            </goals>
            <id>buildnumber</id>
          </execution>
        </executions>
        <groupId>org.codehaus.mojo</groupId>
        <version>1.4</version>
      </plugin>
      <plugin>
        <artifactId>maven-resources-plugin</artifactId>
        <version>3.0.2</version>
        <executions>
          <execution>
            <id>copy-resources</id>
            <phase>validate</phase>
            <goals>
              <goal>copy-resources</goal>
            </goals>
            <configuration>
              <outputDirectory>${basedir}/build</outputDirectory>
              <resources>          
                <resource>
                  <directory>${basedir}</directory>
                  <filtering>true</filtering>
                  <excludes> …
Run Code Online (Sandbox Code Playgroud)

java maven

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

将Windows窗体移植到.Net Standard 2.0

如果这是一个非常天真的问题,请道歉.我之前用.Net 4.5编写了一个Windows Form应用程序.最近,我认为使用VS Code将它移植到.Net Standard 2.0应用程序是个好主意.

缺少库和类存在一些问题(System.ServiceModel是最大的差距),但我已经到了成功构建应用程序的程度.但是,当我来运行它时,我看到以下错误:

Unhandled Exception: System.BadImageFormatException: Could not load file or assembly 'System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'. Reference assemblies should not be loaded for execution.  They can only be loaded in the Reflection-only loader context. (Exception from HRESULT: 0x80131058) ---> System.BadImageFormatException: Cannot load a reference assembly for execution.
Run Code Online (Sandbox Code Playgroud)

这是项目文件,如果它有用:

<Project Sdk="Microsoft.NET.Sdk">

<ItemGroup>
<PackageReference Include="log4net" Version="2.0.8" />
<PackageReference Include="Microsoft.CSharp" Version="4.4.0" />
<PackageReference Include="Newtonsoft.Json" Version="10.0.3" />
<PackageReference Include="NUnit" Version="3.8.1" />
<PackageReference Include="System.CodeDom" Version="4.4.0" />
<PackageReference Include="System.Configuration" Version="2.0.5" />
<PackageReference …
Run Code Online (Sandbox Code Playgroud)

.net c# winforms .net-standard-2.0

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

使用Windows身份验证从非域计算机访问SQL Server 2005

我有一个Windows域,其中一台机器运行SQL Server 2005,并配置为仅支持Windows身份验证.我想在同一网络上的计算机上运行C#客户端应用程序,但不在域上,并访问SQL Server 2005实例上的数据库.

我认为做这样的事情会很简单:

string connectionString = "Data Source=server;Initial Catalog=database;User Id=domain\user;Password=password";
SqlConnection connection = new SqlConnection(connectionString);
connection.Open();
Run Code Online (Sandbox Code Playgroud)

但是,这失败了:客户端错误是:

System.Data.SqlClient.SqlException:用户'domain\user'登录失败,服务器端错误为:错误18456,严重级别14,状态5

我尝试了各种各样的事情,包括将集成安全性设置为true和false,以及\而不是用户ID中的\,但没有成功.

一般来说,我知道可以从非域计算机连接到SQL Server 2005实例(例如,我正在使用基于Linux的应用程序,很高兴这样做),但我似乎无法找出如何从Windows机器上做到这一点.

c# windows sql-server security dns

5
推荐指数
2
解决办法
2397
查看次数

获取 java.lang.NoClassDefFoundError: 无法初始化类 oracle.jdbc.OracleDriver 异常

当我尝试使用 JDBC 驱动程序访问数据库时,我发现一些奇怪的行为。这是代码片段:

LOGGER.debug("driver is " + driver);
try {
    Class.forName(driver);
    LOGGER.debug("got driver");
} catch (Throwable t) {
    LOGGER.debug("throwable getting driver " + driver);
    t.printStackTrace(System.out);
    throw t;
}
Run Code Online (Sandbox Code Playgroud)

当我运行它时,这是我在堆栈跟踪中看到的内容。

08:20:00.417 [main] DEBUG - driver is com.sybase.jdbc4.jdbc.SybDriver
08:20:00.604 [main] DEBUG - throwable getting driver com.sybase.jdbc4.jdbc.SybDriver
java.lang.NoClassDefFoundError: Could not initialize class oracle.jdbc.OracleDriver
        at java.base/java.lang.Class.forName0(Native Method)
        at java.base/java.lang.Class.forName(Class.java:398)
        at java.sql/java.sql.DriverManager.isDriverAllowed(DriverManager.java:555)
        at java.sql/java.sql.DriverManager.isDriverAllowed(DriverManager.java:547)
        at java.sql/java.sql.DriverManager.getDrivers(DriverManager.java:449)
        at java.sql/java.sql.DriverManager.getDrivers(DriverManager.java:426)
        at com.sybase.jdbc4.jdbc.SybDriver.registerWithDriverManager(Unknown Source)
        at com.sybase.jdbc4.jdbc.SybDriver.<init>(Unknown Source)
        at com.sybase.jdbc4.jdbc.SybDriver.<clinit>(Unknown Source)
        at java.base/java.lang.Class.forName0(Native Method)
        at java.base/java.lang.Class.forName(Class.java:315)
        ... my code …
Run Code Online (Sandbox Code Playgroud)

java sybase jdbc

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