小编Mat*_*att的帖子

检查字体是否支持某些字符

我在StackOverflow上发现了这个:有没有办法以编程方式确定字体文件是否具有特定的Unicode字形?

但是,我还需要检查UTF-32字符.我想要做的是在unicode.org上解析Unihan数据并忽略"Arial Unicode MS"不支持的所有字符.我开始研究CheckIfCharInFont()方法,修改arg取一个字符串(对于utf-32)并检查它是否是一个代理对.然后我通过做一个char.ConvertToUtf32(surrogate1,surrogate2)得到Int32,但问题是当前的CheckIfCharInFont()方法只支持Uint16 ...你可以看到我放置了一个"Debugger.Break",这是有点一个问题.那里的任何专家可以帮我解决这个问题吗?

谢谢

public static bool CheckIfCharInFont(string character, Font font)
        {
            UInt16 value = 0;
            int temp = 0;
            if (character.Length > 1) //UTF-32
            {
                temp = char.ConvertToUtf32(character[0], character[1]);
            }
            else
            {
                temp = (int)character[0];
            }

            if (temp > UInt16.MaxValue)
            {
                Debugger.Break();
                return false;
            }
            value = (UInt16)temp;

            //UInt16 value = Convert.ToUInt16(character);
            List<FontRange> ranges = GetUnicodeRangesForFont(font);
            bool isCharacterPresent = false;
            foreach (FontRange range in ranges)
            {
                if (value >= range.Low && value <= range.High)
                {
                    isCharacterPresent …
Run Code Online (Sandbox Code Playgroud)

unicode fonts

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

调试时可以看到ObjectStateManager中的内容吗?

背景

我在更新EF中的实体时遇到了一些麻烦。我不断收到此错误:

“ ObjectStateManager中已经存在具有相同键的对象。ObjectStateManager无法跟踪具有相同键的多个对象”

我完全知道,显然还有一个附加的实体。但是,我目前无法对其进行跟踪。有很多代码,我已经花了很多时间了。据我所知,我AsNoTracking()在所有查询中都使用了扩展方法。

我需要的

我的问题是:在任何给定时间,我有什么办法可以看到ObjectStateManager中的实际内容?如果在调试过程中可以看到其中的项目,则可以更快地找到其来源。

如果上述方法不可行,我将对如何最好地解决此问题提供任何建议,这就像现在的大海捞针一样。

c# entity-framework

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

Spring/Java Mail:忽略FROM地址

我在Spring FW中使用JavaMail.一切都很好,但我不知道为什么FROM地址总是错的; 它似乎忽略了它,并说它真的来自哪里.我想要的东西会在一瞬间变得更加清晰.首先,这是我的代码:

CONFIG

<bean id="mailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl">
    <property name="host" value="smtp.gmail.com"/>
    <property name="port" value="25"/>
    <property name="username" value="[my gmail address]"/>
    <property name="password" value="[my password]"/>
    <property name="javaMailProperties">
        <props>
            <prop key="mail.transport.protocol">smtp</prop>
            <prop key="mail.smtp.auth">true</prop>
            <prop key="mail.smtp.starttls.enable">true</prop>
            <!--<prop key="mail.debug">true</prop>-->
        </props>
    </property>
</bean>
Run Code Online (Sandbox Code Playgroud)

助手课程

@Service("mailService")
public class MailService {

    @Autowired
    private JavaMailSenderImpl mailSender;

    public void sendMail(String from, String to, String subject, String body) {
        try {
            MimeMessage message = mailSender.createMimeMessage();
            MimeMessageHelper helper = new MimeMessageHelper(message, true);
            helper.setFrom(from);
            helper.setTo(to);
            helper.setSubject(subject);
            helper.setText(body, true);
            mailSender.send(message);
        }
        catch (MessagingException ex) { …
Run Code Online (Sandbox Code Playgroud)

java gmail spring jakarta-mail

5
推荐指数
3
解决办法
7741
查看次数

NopCommerce:如何将此网关的返回字段映射到Nop期望的字段?

背景

我正在为NopCommerce 2.80 编写支付网关插件.这是我第一次为支付网关编写代码.我几乎在那里,但有一些问题.

问题

  • 首先,在ProcessPayment方法中,我需要返回一个ProcessPaymentResult具有以下属性的东西(有人可以向我解释这些之间的区别吗?):

AuthorizationTransactionCode

AuthorizationTransactionId

AuthorizationTransactionResult

CaptureTransactionId

CaptureTransactionResult

我需要实现的网关(Tranzila)返回以下字段:

ConfirmationCode

AuthNumber

RefNumber

TempRef

和其他一些可能不适用于这种情况的人.我不知道如何将这些映射到Nop所期待的......

  • 其次,Capture方法是什么?我看过PayPalDirect插件,但不是很清楚.这个方法何时被调用?

c# payment-gateway e-commerce nopcommerce

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

C:控制台输出中的垃圾字符

我通过创建各种简单的函数来学习C指针.我刚刚创建了一个函数来反转char数组.它可以工作,但在输出后它还会显示一堆垃圾字符(见下面的截图).

截图

这是我的代码:

void reverseString();

int main()
{
    reverseString();

    system("PAUSE");
    return 0;
}

void reverseString()
{
    char string1[20], string2[20];
    char *ptr1, *ptr2;
    ptr1 = &string1[0];
    ptr2 = &string2[0];

    printf("Enter string: \n");
    scanf("%s", string1);

    int len1 = strlen(string1);

    int i;
    for (i = 0; i < len1; i++)
    {
        ptr2[i] = ptr1[len1 - i - 1];
    }

    printf("%s\n", string2);
}
Run Code Online (Sandbox Code Playgroud)

我该怎样摆脱垃圾字符?我的代码有什么问题,或者我只是为了某些东西或什么而负责?

c pointers

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

DevExpress:如何在没有许可证的情况下开发它?

我是自由职业者.客户希望我与DevExpress合作.这是如何运作的?我买不起它的执照.我可以下载试用30天..但是为了更长期和"正确"的解决方案..这通常是怎么做的?我是否需要从我的客户那里获得许可证?他说以前的开发人员没有许可就为他编码,但他不知道怎么做.请有人为我提供一些说明.

UPDATE

我应该澄清一下:客户已经购买了DevExpress,但告诉我他目前没有任何许可证给我...因为他们正在被其他开发者使用.所以我想在我编写应用程序之后,他将构建它并且没有恼人的消息.我只是想能够为它开发......就是这样.是否有可能或者我需要告诉他为我获得另一个许可证?

devexpress

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

Web API 2:OData 4:操作返回404

我有一个OData v4不起作用的动作方法; 但请注意它工作正常OData v3(我显然正在尝试更新我的项目)

OData行动方法:

[HttpPost]
public Translation Translate(ODataActionParameters parameters)
{
    // Implementation
}
Run Code Online (Sandbox Code Playgroud)

组态:

ODataModelBuilder builder = new ODataConventionModelBuilder();
builder.EntitySet<Page>("Pages");
//etc (Other Entity Sets)

var pageEntityType = builder.EntityType<Page>();
var translateAction = pageEntityType.Collection.Action("Translate");
translateAction.Parameter<Guid>("pageId");
translateAction.Parameter<string>("cultureCode");
translateAction.Returns<Translation>();

//etc (Other Actions)

var route = config.MapODataServiceRoute("OData_CMS", "odata/cms", builder.GetEdmModel());
Run Code Online (Sandbox Code Playgroud)

客户端AJAX调用:

var data = {
    pageId: $("#CultureSelector_PageId").val(),
    cultureCode: $("#CultureSelector_CultureCode").val()
};

$.ajax({
    url: "/odata/cms/Pages/Translate",
    type: "POST",
    contentType: "application/json; charset=utf-8",
    data: JSON.stringify(data),
    dataType: "json",
    async: false
})
.done(function (json) {
    //etc
Run Code Online (Sandbox Code Playgroud)

我试着看看版本4中OData操作的设置是否有任何改变,但看起来是一样的(参考:使用ASP.NET …

odata asp.net-web-api asp.net-web-api2

3
推荐指数
2
解决办法
4549
查看次数

SELECT TOP(N)每个组的行

这是我到目前为止的查询:

SELECT [Id], [HotelName], [StarRating], [Description], [CheckinDate], [CheckoutDate], [Price], [ImageUrl]
FROM
(
    SELECT TOP (6) [Id], [HotelName], [StarRating], [Description], [CheckinDate], [CheckoutDate], [Price], [ImageUrl], RANK() OVER(PARTITION BY [StarRating] ORDER BY [StarRating]) AS Num
    FROM [dbo].[Hotel]
    WHERE [CityId] = @CityId 
    AND CheckinDate > GETDATE()
    AND [StarRating] IN (3, 4, 5)
) X
WHERE Num <= 2
Run Code Online (Sandbox Code Playgroud)

我想要的是为每个星级评分获得2行:评级3中的2,评级4中的2和评级5中的2.我该怎么做?我已经在网上进行了一些研究后得出了上述内容,但我显然还没有完全理解hwo来实现它,因为它不起作用......我得到6排星级3

sql sql-server greatest-n-per-group

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

MVC3:Razor验证文本:在不将验证消息设置为null的情况下生成红色

这很好用:

@Html.ValidationMessageFor(m => m.Definition)
Run Code Online (Sandbox Code Playgroud)

除了文字是黑色的事实.我想要它是红色的.所以,我试过这个:

@Html.ValidationMessageFor(m => m.Definition, null, new { style = "color: red" })
Run Code Online (Sandbox Code Playgroud)

但是,这是将消息设置为NULL.疯狂的是没有超载会占用htmlAttributes arg而没有消息arg ..... argghhh !!!

什么是实现这一目标的最优雅的方法(没有我必须编写自己的验证消息)?

c# asp.net razor asp.net-mvc-3

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

Java:如何使用switch语句

可能重复:
如何比较Java中的字符串?

我无法理解如何使用Java switch语句.在其中一个case语句中执行一个方法之后,它仍然会转到default语句并运行它.这是代码:

Scanner scanner = new Scanner(System.in);
String option = null;

while (option != "5") {
    ShowMenu();
    option = scanner.nextLine();
    switch (option) {
        case "1": ViewAllProducts(); break;
        case "2": ViewProductDetails(scanner); break;
        case "3": DeleteProduct(scanner); break;
        case "4": AddProduct(scanner); break;
        case "5": break;
        default: System.out.println("Invalid option. Please try again."); break;
    }
}
Run Code Online (Sandbox Code Playgroud)

上面的代码是主要方法.以运行案例"4"为例,它会打印"无效选项".

java string-comparison switch-statement

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