未使用 MetadataType 加载元数据

2023-11-25

我有一些问题/疑问元数据类型。我有 DLL 帮助程序项目,用于使用 LinqToSQL 从 MS SQL Server 访问数据。我还需要为生成的类 ClientInfoView 添加元数据。我是按照以下方式完成的:

using System;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel;

namespace DataAPI.LINQToSQL
{
    [MetadataType(typeof(ClientInfoViewMetaData))]
    public partial class ClientInfoView
    {
        internal sealed class ClientInfoViewMetaData
        {
            [Category("Main Data"), DisplayName("Client ID")]
            public int ID { get; set; }

            [Category("Main Data"), DisplayName("Login")]
            public string Login { get; set; }

            ...
        }
    }
}

但是当我在运行时检查属性时,我发现ClientInfoView没有任何属性。

你能帮我找出一个错误吗?


因为元数据类型不适用于此类目的,但您可以使用此方法

private bool PropertyHasAttribute<T>(string properyName, Type attributeType)
    {
        MetadataTypeAttribute att = (MetadataTypeAttribute)Attribute.GetCustomAttribute(typeof(T), typeof(MetadataTypeAttribute));
        if (att != null)
        {
            ;
            foreach (var prop in Type.GetType(att.MetadataClassType.UnderlyingSystemType.FullName).GetProperties())
            {
                if (properyName.ToLower() == prop.Name.ToLower() && Attribute.IsDefined(prop,attributeType))
                    return true;
            }
        }
        return false;
    }

你可以这样使用

bool res = PropertyHasAttribute<ClientInfoView>("Login", typeof(DisplayAttribute))

这告诉您类属性登录有或没有 displayattribute ,但如果您需要查找属性值,您可以使用 Attribute.GetCustomAttribute 方法并将其转换为您选择的属性,如显示属性并通过 .Name 读取 Name 属性:)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

未使用 MetadataType 加载元数据 的相关文章

随机推荐

  • 如何通过单击可执行 r 文件从 rmd 脚本编织 pdf?

    Synopsis 我想通过单击文件 图标从 rmd 脚本生成 pdf 文件 这样我的同事就不会因为先打开 RStudio 而精疲力竭 问题 当我看到this在 R bloggers 上 并让它工作起来 我认为我正在接近从脚本编写到共享我的工
  • 如何在 Nodejs Express 中提供图像

    我有这个代码 var express require express var http require http var app express var server http createServer app app use expres
  • std::unique_lock 或 std::lock_guard

    我有两个用例 答 我想同步两个线程对队列的访问 B 我想同步两个线程对队列的访问并使用条件变量 因为其中一个线程将等待另一个线程将内容存储到队列中 对于用例 A 我看到代码示例使用std lock guard lt gt 对于用例 B 我看
  • 在 Javascript/Jquery 中将 URL 图像转换为 Base64 或 Blob 的简单方法

    我正在为一个简单的应用程序开发离线模式 并且我正在使用 Indexeddb PounchDB 作为库 我需要将图像转换为 Base64 或 BLOB 才能保存它 我已经尝试过这段代码 它仅适用于一张图像 提供的图像 我不知道为什么它不适用于
  • Windows/C++:如何使用未注册的 COM dll

    在我们的应用程序中 我们需要使用一个之前未在系统中注册的COM dll 即msdia100 dll 早些时候 我们刚刚通过以下代码调用其 DllRegisterServer 来调用 DLL Register DIA DLL required
  • 使用 Jersey 的 Java 异步 REST Web 服务?

    我需要实现一个 Java REST Web 服务 我们使用 Jersey 框架 它基本上可以 A 在返回响应之前阻止等待某个事件 或轮询事件 b 提供某种 aysnc 行为来通知客户端请求已被处理 我正在考虑返回一个 transaction
  • MVVM:在 ViewModel 之间共享数据

    如何在多个 ViewModel 之间共享数据 例如 application 中有一个名为 Project 的类 public class Project ModelBase private string projectName public
  • 有没有办法通过protractor cli传递多个浏览器

    只是想知道是否可以像这样指定 cli args 到量角器 multiCapability 0 browserName chrome multiCapability 1 browserName firefox 以便它覆盖量角器conf文件中定
  • 获取最后一个顶级命令作为字符串

    有没有办法将最后一个顶级命令存储到字符串中 而无需将历史记录保存到文件中并将其读回以获取最后一个命令 我有这方面的代码 lastcmd lt function tmp lt tempfile savehistory tmp If we ca
  • XPath:一起选择自己和跟随的兄弟姐妹

    div dt Test 1 dt dd dd dt Test 2 dt dd dd div 到目前为止我已经写了这个 XPath dt contains text Test self dt following sibling dd 但这并没
  • Node.js - 设置系统日期/时间

    有没有办法从 Node js 服务器设置操作系统上的日期 时间 有很多关于如何更改时区的示例 但我需要更改电脑的实际日期 时间 我的回答基于 Mimouni的回答https stackoverflow com a 23156354 1799
  • Caliburn.Micro 嵌套 ViewModel 最佳实践

    这是一个很长的问题 所以请耐心等待 目前 我正在开发一个小工具 旨在帮助我跟踪故事中的无数角色 该工具执行以下操作 加载当前以 json 形式存储在磁盘上的字符并将它们存储在列表中 该列表通过 ListBox 在 Shell 中呈现 如果用
  • 如何在 SimCity 5 中实现建筑物在移动时摆动的物理效果?

    用纯文字很难描述 所以我录了一个GIF来演示 https public lightpic info image 2B1F 582465841 gif 我目前正在做一个项目 需要这样的效果 目前我已经用SpriteKit在iOS上完成了类似的
  • NGINX 透明 TCP 代理

    我有一个 ELK 堆栈 在两台 Logstash 主机前面 我设置了两个 NGINX 负载均衡器作为透明代理 UDP 流量正在发挥作用 TCP 与配置一起工作 stream upstream syslog server sapvmlogst
  • 如何使用 jQuery 模板设置日期/时间格式?

    我刚刚开始使用jQuery 模板作为我的 javascript 模板引擎 我的问题是 如何将日期 从 ASP NET Json ActionResult 返回 格式化为以下形式 Date 1288709830000 我尝试执行以下操作 fo
  • 优化Java中字符串集合的内存使用

    我有大量的名称 值对 大约 100k 我需要将它们存储在某种缓存 例如哈希映射 中 其中值是平均大小约为 30k 字节的字符串 现在我知道一个事实 即大量值具有完全相同的字符串数据 为了避免多次分配相同的字符串数据 我想以某种方式重用以前分
  • Android - ImageView 内的画布绘制线

    我有一个 ImageView 我想在其中画一条线 我已经做了以下操作 mImagenCampo ImageView findViewById R id imagen campo crearPunto mArea9M mPaloIzq v g
  • 如何在Android SQLite中使用TRIGGER

    我的数据库中有两个表 表一有姓名和房间号栏 表二有房间号和时间栏 现在 当删除或添加第一列中的房间号时 我的第二个表也应该更新 我认为这可以通过 TRIGGER 命令实现 但我不太确定如何使用它 一般来说我的创建数据库语句是这样的 priv
  • 获取年份中的季度开始日期和结束日期

    我正在使用 SQL Server 2008 我想获取一年中所有季度的开始日期和结束日期 例如 如果我在查询中传递 2013 那么输出应该像 StartDate EndDate QuarterNo 2013 04 01 00 00 00 00
  • 未使用 MetadataType 加载元数据

    我有一些问题 疑问元数据类型 我有 DLL 帮助程序项目 用于使用 LinqToSQL 从 MS SQL Server 访问数据 我还需要为生成的类 ClientInfoView 添加元数据 我是按照以下方式完成的 using System