小编G_H*_*hat的帖子

是否有"特殊"方法通过XML注释识别IntelliSense中方法参数的默认值?

通常,我有一系列重载方法,所有方法都汇集到一个"主"方法中.每个重载接受不同的参数组合,然后将这些值传递给"master"以及一些未包含在重载版本中的任何"默认"值.我正在尝试为这些方法创建XML文档,我想以一些明显的方式指出这些默认值是什么.

是否有一个特定的XML标记可以被这种形式的文档用于识别将传递给另一个方法的默认值?理想情况下,我希望在IntelliSense中看到类似的内容Default: <parametername> value <defaultvalue>,尽管在XML文档功能的标准行为中可能会有一些要求.

如果没有"特殊"XML标签用于类似的东西,我想我只需要在<summary><remarks>部分提出一些适当的措辞.有效的东西"This will use the default value of <defaultvalue> for <parametername>...".我只是认为如果有办法识别这些默认值以及其他参数会更好.

显然,这不是一个关键需求.我只是好奇这一点,想知道我是否只是忽略了一些东西.以下是相关代码的示例.我已经删除了主方法中的实际操作代码,因为它与此问题无关,但如果有人需要/想要它,我会指出它.

"大师"方法

''' <summary>
''' Merges multiple PDF files into a single PDF file
''' </summary>
''' <param name="PDFFiles">A list of specific PDF files to merge</param>
''' <param name="OutputFileName">The PDF file to create from the merged PDF files</param>
''' <param name="OverwriteExistingPDF">If the specified PDF file already exists, identifies whether or not to overwrite the existing …
Run Code Online (Sandbox Code Playgroud)

vb.net documentation intellisense overloading

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

IntelliJ IDEA - 反编译/编辑/重新编译 JAR

我意识到这似乎是一个完全愚蠢的问题,而且这个问题是“文字墙”,但我觉得我已经超出了我的深度,需要一些指导。我已经阅读了有关此主题的几个问题,但似乎仍然找不到解决这一特定情况的问题。(请参考本文末尾的更新


背景

我们公司有一个用 Java 构建的应用程序,由几年前去世的开发人员作为可执行 JAR 包发布。从那时起,几乎不需要查看该代码,更不用说进行任何更改了。这真的很好,因为我在 VB.NET (Visual Studio) 中进行编程,虽然我可以阅读和理解 Java 代码,但我并不精通实际编写/调试该代码。

然而,最近出现的一个问题迫使我尝试查看这个 Java 代码,因为组织和数据结构发生了一些内部变化。我查看了他的“ src\”目录,找到了他的原始代码的旧版本,但无法在任何地方找到最新版本。我发现一些代码使我能够将当前正在使用的 JAR 提取到 CodeProject ( JarsVB.java ) 上的本地目录,因此当我试图找出正在执行的查询时,我能够查看一些文件用于一些随机操作。我不知道原始开发人员使用什么工具来创建项目/JAR,所以我安装了IntelliJ IDEA Community Edition 2018作为 IDE,到目前为止,它对我来说只是简单地查看代码,所以我可以了解一点它在做什么。


问题/目标

不幸的是,现在我需要更改 Java 代码并更新 JAR,而这就是我似乎无法弄清楚我需要做什么的地方。我有来自“解压缩”JAR 的本地代码副本,其中包含所有.java.class文件(以及所有其他资源),但我不确定如何从该副本修改代码并重新编译可执行 JAR。

所以,我的目标如下:

  1. (正确)反编译现有的可执行 JAR。(如果我上面提到的JarsVB解决方案做了它应该做的事情,我应该已经处理了这部分,但如果有更好、更“集成”的方法来做到这一点,我也会对此持开放态度。
  2. 修改一个或多个.java文件。(我相信我可以很好地理解语法来完成这部分。
  3. 调试/测试我的更改。
  4. 将更改重新编译为更新的可执行 JAR 以便发布。(是我最困惑的地方。

我做了什么

我一直在查看 IntelliJ 的文档,试图找出如何实现这一切,但我觉得我错过了一些东西。我将“项目结构”设置设置为指向特定文件夹,但我似乎无法让它在我指定的路径中实际构建任何内容。

项目结构 -> 项目设置 -> 项目

项目结构 -> 项目设置 -> 模块

我进入其中一个.java文件并进行/保存了一个小更改以进行测试,然后转到“构建”菜单并尝试了所有可用的构建选项:“构建项目”、“构建模块”和“重建项目”。每次,事件日志都会显示“所有文件都是最新的”(即使我更改了一个文件),因此我转到输出目录查看它构建的内容,但该文件夹是空的。

我查看了 IntelliJ 文档 将模块打包成 JAR …

java jar intellij-idea executable-jar

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

使用带有 discord.py 的 tweepy 将推文发布到特定频道

因此,我正在尝试使用教程、文档和在线示例的组合自学一些 Python,以构建一个 Discord 机器人,该机器人实现了一个或多个现有机器人的某些功能。其中一个功能是将(新)推文从一组特定的 Twitter 帐户发布到我的 Discord 服务器上的特定频道。我找到了一些零碎的代码,我拼凑起来从 Twitter 流中读取,并在这里和那里“调整”了一些东西以尝试实现这一目标。

但是,我一直遇到实际让on_status代码正确执行的问题。我尝试了多种方法来使其正常工作,但是我尝试的所有方法都会导致某种错误。以下是我一直在测试的最新迭代中的相关代码(已编辑):

import discord
import tweepy

from discord.ext import commands
from tweepy import Stream
from tweepy.streaming import StreamListener

class TweetListener(StreamListener):
    def on_status(self, status):
        if status.in_reply_to_status_id is None:
            TweetText = status.text

            for DGuild in MyBot.guilds:
                for DChannel in DGuild.text_channels:
                    if DChannel.name == 'testing':
                        TwitterEmbed = discord.Embed(title='New Tweet', description='New Tweet from my timeline.', color=0xFF0000)
                        TwitterEmbed.set_author(name='@TwitterHandle', icon_url=bot.user.default_avatar_url)
                        DChannel.send(TweetText, embed = TwitterEmbed)

DISCORD_TOKEN = 'dtoken'
TWITTER_CONSUMER_KEY = 'ckey'
TWITTER_CONSUMER_SECRET = 'csecret'
TWITTER_ACCESS_TOKEN = …
Run Code Online (Sandbox Code Playgroud)

python twitter tweepy discord discord.py

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

通过 O365 发送电子邮件

我们公司最近通过 Office 365 订阅从本地邮件服务器 (CommunigatePro) 迁移到托管邮件。从那时起,我在通过 VB.NET 应用程序向组织外部的人员发送电子邮件时遇到了问题。我找到了解决方法,但我想知道我是否只是在配置中遗漏了一些可能导致问题的内容。

我发送消息的代码非常标准(显然在发布时有点混乱),但我必须包含一个单独的函数,用于在失败时通过 CDO 发送消息:

Private Function SendFTPSuccessMail() As Boolean
    Dim Email As New System.Net.Mail.MailMessage
    Dim MailServer As New System.Net.Mail.SmtpClient("domain-com.mail.protection.outlook.com")
    Dim SenderAddress As New System.Net.Mail.MailAddress("helpdesk@domain.com", "IT HelpDesk")
    Dim BodyText As String = String.Empty

    With Email
        .From = SenderAddress
        .Bcc.Add(SenderAddress)

        BodyText = "SOME TEXT FOR THE E-MAIL MESSAGE"
        .To.Add(New System.Net.Mail.MailAddress("recipient@recipient.com", "Recipient"))
        .Subject = "MESSAGE SUBJECT"
        .Body = BodyText
    End With

    Try
        MailServer.Send(Email)
        Return True
    Catch ex As Exception
        Dim CDOError As String = SendCDOEmail(Email, ex) …
Run Code Online (Sandbox Code Playgroud)

vb.net email office365

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