小编wal*_*her的帖子

使用扩展的mapi函数将图像嵌入到Outlook中

我需要在电子邮件中嵌入图像并在Outlook中发送之前预览电子邮件.CDO和赎回不是一种选择.

我尝试了以下代码,但图像只显示为一个小块.

  procedure AddAttachment(FullFileName: String; Attachments: Outlook2000.Attachments; CID: String);
  const
    PR_ATTACH_CONTENT_ID   = $3712001E;
    PR_ATTACH_CONTENT_ID_W = $3712001F; // Unicode
    PR_ATTACH_MIME_TAG     = $370E001E;
    PR_ATTACH_ENCODING     = $37020102;
  var
    IAttach: IMAPIProp;
    Prop: PSPropValue;
    AAttachment: Outlook2000.Attachment;
    FileName: String;
    PropValue: TSPropValue;
    Prop1: TSPropTagArray;
  begin
    FileName := ExtractFileName(FullFileName);
    Prop := nil;
    try
      AAttachment := Attachments.Add(FullFileName, olByValue, 1, FileName);
      IAttach := AAttachment.MAPIOBJECT as IMAPIProp;
      if Assigned(IAttach) then
        try
          PropValue.ulPropTag := PR_ATTACH_MIME_TAG;
          PropValue.Value.lpszA := 'image/jpeg';
          HrSetOneProp(IAttach, @PropValue);
          PropValue.ulPropTag := PR_ATTACH_CONTENT_ID;
          PropValue.Value.lpszA := PAnsiChar(AnsiString(CID));
          HrSetOneProp(IAttach, @PropValue);
        finally
          if Assigned(Prop) then …
Run Code Online (Sandbox Code Playgroud)

embed delphi mapi outlook

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

编码不是枚举吗?

我试图找出一种方法来存储数据库中的文件编码,然后能够将其检索回原始类型(System.Text.Encoding).但我得到一个我不明白的错误.

作为测试,我创建了这个小程序来重现错误:

using System;
using System.Text;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            object o = Encoding.Unicode;
            Encoding enc = (Encoding) Enum.Parse(typeof(Encoding), o.ToString());
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我在Parse专线中得到的例外说:

Type provided must be an Enum.
Parameter name: enumType
Run Code Online (Sandbox Code Playgroud)

那么,基本上据我所知,告诉我typeof(Encoding)不会返回Enum类型?提前感谢您提供的任何帮助.

c# enums encoding

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

Linq-to-entities,在一个查询中获取结果+行数

我已经看到了有关此事的多个问题,但它们已经有 2 年(或更长)的历史了,所以我想知道这方面是否有任何变化。

基本思想是填充网格视图并创建自定义分页。所以,我还需要结果和行数。

在 SQL 中,这将类似于:

SELECT COUNT(id), Id, Name... FROM ... WHERE ...
Run Code Online (Sandbox Code Playgroud)

通过一个简单的查询获取所有内容。但是,我希望保持一致并使用 Linq2Entities。

到目前为止,我正在使用该方法进行两个查询(针对 SQL Server),因为它确实有效。我想优化它并使用单个查询。

我试过这个:

var query = from o in _db.Products
                        select o;

var prods = from o in query
            select new
            {
                 Count = query.Count(),
                 Products = query
            };
Run Code Online (Sandbox Code Playgroud)

这会产生一个非常令人讨厌且漫长的查询,其中包含真正不必要的交叉联接和其他我真正不需要或不想要的东西。

有没有一种方法可以在一个简单的查询中获取分页结果+所有实体的计数?这里推荐的方法是什么?

更新:

刚刚尝试了 FutureQueries,要么我做错了什么,要么它实际上执行了两个查询。这显示了我的 sql 分析器:

-- Query #1

SELECT 
[GroupBy1].[A1] AS [C1]
FROM ( SELECT 
    COUNT(1) AS [A1]
    FROM [dbo].[Products] AS [Extent1]
    WHERE 1 = [Extent1].[CategoryID]
)  AS [GroupBy1];
Run Code Online (Sandbox Code Playgroud)

下一行:

-- …
Run Code Online (Sandbox Code Playgroud)

c# sql linq-to-entities

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

解耦架构

我正在开发一个系统,我希望尽可能地将我的图层分离,你知道,某种模块化的应用程序可以在不对系统其他部分进行严格修改的情况下切换数据库和内容.

所以,我一直在关注x-Robert C. Martin关于良好实践,清洁代码,解耦架构等的谈话,以获得一些灵感.我觉得有点奇怪的是他对系统的描述Fitnesse以及他们为WikiPages 实现存储/加载方法的方式.我也在关联视频:Robert C. Martin - 清洁建筑与设计

他描述的内容(至少从我的理解中)是实体知道如何从某个持久层存储和加载自身的机制.当他想将WikiPages存储在内存中时,他只是覆盖了WikiPage并创建了一个新的InMemoryWikiPage.当他想将它们存储在数据库中时,他做了同样的事情......

所以,我的一个问题是 - 这种方法叫做什么?我一直在学习关于存储库模式和内容的所有时间,为什么应该像这样的持久性无知的类,但我似乎无法在他做的这件事上找到任何材料.因为我的应用程序将由模块组成,我认为这可能有助于解决我的问题而无需为我的实体创建一些集中存储......每个模块都会自行处理,包括其实体的持久性.

我认为代码看起来像是这样的:

public class Person : IEntity
{
   public int ID { get;set; }
   public string Name { get;set; }

   public void Save()
   {
       ..
   }

   public void Update()
   {
   }

   public void Delete()
   {
   }

   ...
}
Run Code Online (Sandbox Code Playgroud)

看起来有点奇怪,但......或许我误解了他在视频中所说的话?

我的第二个问题是,如果你不同意这种方法,你会在这种模块化应用程序中采取什么样的路径?

如果可能,请提供一些示例并提供一些解释.

c# architecture modularity decoupling

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

LINQ:查询结果不能多​​次枚举

这是我的代码

 searchDataContext db = new searchDataContext();

    var query = (from p in db.SearchFirst(city, area)
                select new
                {
                    ID = p.Id,
                    Address = p.address,
                    Level = p.agahilevel

                });
    int count =query.Count();

    // records
    var q = query.Skip(Convert.ToInt32(start)).Take(Convert.ToInt32(width));

    if (q.Count() > 0)
    {
        int index = 0;
        str += "[";
        foreach (var row in q)
        {
            if (index == 0)
Run Code Online (Sandbox Code Playgroud)

我在这段代码中有错误

The query results cannot be enumerated more than once.
Run Code Online (Sandbox Code Playgroud)

请检查并回答我.

c# linq

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

方法运行完毕后,是否收集局部变量

例如

public void doSomething() {
   Dog smallDog = new Dog();
   smallDog.bark();
}
Run Code Online (Sandbox Code Playgroud)

这个方法运行后会收集狗对象吗?

java variables garbage-collection

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

在命名空间之外导入类

我正在尝试导入文件并实例化命名空间之外的类。require_once 正在工作,但是在实例化它时我收到了一个找不到类的错误。有没有办法解决?

php cakephp-3.0

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

如何在网格视图中获取隐藏字段的值?

网格视图中隐藏字段的订单号为7.

当我点击按钮的那一行

string sValue = ((HiddenField)GridView1.SelectedRow.Cells[7].FindControl("HiddenField1")).Value; 
Run Code Online (Sandbox Code Playgroud)

给出错误,即"对象引用未设置为对象的实例".

          <asp:TemplateField>
            <ItemTemplate> 

                <asp:HiddenField ID="HiddenField1" runat="server" 
                    Value='<%#Eval("RSS_ID")%>'/>

            </ItemTemplate>
          </asp:TemplateField>
Run Code Online (Sandbox Code Playgroud)

c#侧

else if (e.CommandName == "View")
{
    string sValue = ((HiddenField)GridView1.SelectedRow.Cells[7].FindControl("HiddenField1")).Value;                   
}
Run Code Online (Sandbox Code Playgroud)

c# asp.net

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

为什么我的XML阅读器会读取所有其他元素?

我已经构建了一个非常简单的表,显示4列和4行.执行以下代码时,它将显示.xml文件中的每个其他元素.它不区分每个表行.它读取没有任何问题,我已经运行xml验证器,所以它不是语法问题.

public partial class lblXmlOutput : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        XmlReaderSettings settings = new XmlReaderSettings();
        settings.ConformanceLevel = ConformanceLevel.Document;
        settings.IgnoreWhitespace = true;
        settings.IgnoreComments = true;

        XmlReader reader = XmlReader.Create(Server.MapPath("Part2XMLex.xml"), settings);

        string result = "";

        while (reader.Read())
        {
            if (reader.IsStartElement("td"))
                result += reader.ReadElementContentAsString();

            txtOutput.Text = result;
        }
   }
}
Run Code Online (Sandbox Code Playgroud)

c# xml asp.net xmlreader

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

从dll C#返回一个类对象

我在C#中有一个dll,它返回一个类对象.

DLL代码:

Person.cs:

namespace Extract
{
    public class Person
    {
        public string name;
        public string address;
        public int age;
        public int salary;
    }
}
Run Code Online (Sandbox Code Playgroud)

将Class1.cs

namespace Extract
{
    public class MClass
    {
        public static Person GetPerson()
        {
            Person p = new Person();
            p.name = "Deepak";
            p.address = "Bangalore";
            p.age = 30;
            p.salary = 20000;
            return p;
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我在C#中有另一个程序"RunApp",它具有相同的Person.cs类,并尝试从上面的dll获取对象.

RunApp代码:

Person.cs:

namespace Extract
{
    public class Person
    {
        public string name;
        public string address;
        public int age;
        public int …
Run Code Online (Sandbox Code Playgroud)

c#

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