我见过人们定义他们的事件是这样的:
public event EventHandler<EventArgs> MyEvent = delegate{};
Run Code Online (Sandbox Code Playgroud)
有人可以解释一下如果没有它,这与定义它有何不同?是否要在提升事件时避免检查null?
我想构建一个插件来为 Unity 包装最新的 Google Cloud Messaging API (GCM)。我编写了 Java 代码来执行此操作,并将 GCM 插件包含到我的 gradle 构建中:
compile 'com.google.android.gms:play-services-gcm:7.5.0'
Run Code Online (Sandbox Code Playgroud)
由于目标是 Unity,我需要创建一个 AAR 或 JAR + 资源以包含在 Assets/Plugins/Android 中,并且它们需要包含所有传递依赖项(包括 appcompat 和播放服务本身)。如果我使用 Unity 的 AAR 编译应用程序,我会得到:
java.lang.NoClassDefFoundError: Failed resolution of: Lcom/google/android/gms/common/GooglePlayServicesUtil;
Run Code Online (Sandbox Code Playgroud)
这是正常的,因为 AAR 不包含依赖的 Google Play 类。而且我找不到 GCM 模块的独立 JAR。我迷路了,我需要什么才能获得捆绑了所有依赖项的 AAR/JAR?
提前致谢!
突然,Visual Studio说找不到PresentationFramework.pdb.InnerException表示Application.exe.config中的第4行出错了:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<configSections>
<sectionGroup name="userSettings" Type="System.Configuration.UserSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<section name="Application.Properties.Settings" Type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" allowExeDefinition="MachineToLocalUser" requirePermission="false"/>
</sectionGroup>
</configSections>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5"/>
</startup>
<userSettings>
<Application.Properties.Settings>
</Application.Properties.Settings>
</userSettings>
</configuration>
Run Code Online (Sandbox Code Playgroud)
阅读Presentation Framework或清理和重建项目不起作用.
问题解决了我不得不重新命名Type来type.
我有一个非常简单的Windows服务,它是在vb.net 2008中开发的.当我尝试通过工具调试它 - >附加到进程虽然我看到我的服务它被禁用和管理类型我无法选择进程.
我如何调试我的服务?
谢谢
我理解构建聚合现有COM对象的COM对象意味着在外部对象的IUnknown.QueryInterface方法中实现重定向逻辑.
我的问题是如果你正在构建的对象被管理,该怎么做.在托管对象上,未明确实现IUnknown COM Interop为您完成.那么如何告诉COM Interop我构建的对象是另一个COM对象的聚合?
到目前为止,我找到的唯一方法是在外部实现内部对象的所有接口并显式重定向它们.这是a)丑陋和b)假设您知道要实现的所有接口,在我的情况下不是这种情况.
有什么想法吗?
我正在写一个樱桃应用程序,我想知道构建我的处理程序和代码的最佳方法是什么?
我认为通过cherrypy.root进行分配是简单的,但是编写处理程序并分配它们的一些做法是什么?
(请允许我证明我的困惑!)我最初的想法是编写一个标准的处理程序类,根据当前的URL或类/方法组合推断出要运行的模板.然后我会多次将该处理程序的一个实例分配给创建页面的路径.我不认为这有效,因为递归引用不会正常工作.
所以,鉴于我已经在绘制自己的源代码应该如何看待的事实,我会喜欢一些指针和示例!
随意提出一些详细的问题让我澄清一下.虽然那里有大量的樱桃教程材料,但它往往只会划伤表面.
这3种类型的锁显然很糟糕.还有什么其他类型的锁定不好?有没有Stylecop/FxCop规则可以解决这个问题?如果没有,那么请你帮我一个自定义规则实现?他们所有人的代码必须相似,对吧?
谢谢.
我有一个枚举:
public enum Status
{
Incomplete = 1, Complete = 2, Cancelled = 3, Deleted = 4
}
Run Code Online (Sandbox Code Playgroud)
现在在某个页面上,我希望在复选框列表中列出此枚举.这很好,除了我希望每个复选框的文本显示不同于枚举的文本.
即复选框应说:
"未处理"而不是"不完整"
"已处理"而非"完成"
"无效"而不是"取消"
是否可以将此枚举放在foreach中,然后打开状态并更新文本.像这样:
var statuses = Enum.GetNames(typeof(Status));
foreach (var status in statuses)))
{
switch (status)
{
case Status.Complete.ToString():
status = "Processed";
break; ...etc
}
}
Run Code Online (Sandbox Code Playgroud)
任何想法将不胜感激.
我们使用 Enterprise Library 4.1 进行日志记录(和异常处理/加密)。
有谁知道在运行时确定配置的日志记录级别的好方法吗?我编写了一个 LogUtility 类来进行日志记录调用,并按照以下示例调用它:
LogUtility.LogVerbose(
string.Format("Processing event {0}", currentEvent.EventIDImported),
MethodBase.GetCurrentMethod().Name,
this.GetType().Name
);
Run Code Online (Sandbox Code Playgroud)
我知道它实际上不会被记录到文件中,除非将日志记录级别设置为适当的级别,在我的情况下是在 app.config 中。但我真的不希望方法参数,即方法和类型名称,以及在某些情况下记录的实际字符串,除非绝对必要,否则会被评估。
这似乎是一个合理的担忧吗?我们的应用程序可以有数千万次迭代和记录点。如果可能,我想根据配置的日志级别设置一个标志,并在调用上述方法之前进行检查。
编辑 - 我想就上面的例子而言,我可以在每次调用时硬编码方法和类型名称。但我还是想知道是否有一种确定水平的方法。
我正在使用Enterprise库进行数据访问.当我运行应用程序时,在CreateDatabase()语句中,我收到此异常:
用户代码未处理Microsoft.Practices.ObjectBuilder2.BuildFailedException消息="当前构建操作(构建密钥构建密钥[Microsoft.Practices.EnterpriseLibrary.Data.Database,null])失败:值不能为null或为空字符串.(策略类型Microsoft.Practices.EnterpriseLibrary.Common.Configuration.ObjectBuilder.ConfiguredObjectStrategy,index 2)"Source ="Microsoft.Practices.ObjectBuilder2"
现在,我google了一下,发现我必须放置
<dataConfiguration defaultDatabase="LocalSqlServer"/>
Run Code Online (Sandbox Code Playgroud)
但我不知道在哪里.这是正确的解决方案吗?
另外,在安装企业库时我没有看到任何连接字符串声明?所以,我想知道如何从web.config文件中获取连接字符串.
在我的web.config文件的连接字符串部分中,我有:
<remove name="LocalSqlServer"/>
<add name="LocalSqlServer" connectionString="Data Source=MSTR;Initial Catalog=USERDb;Integrated Security=true;" providerName="System.Data.SqlClient"/>
Run Code Online (Sandbox Code Playgroud)