相关疑难解决方法(0)

Type.GetType("namespace.abClassName")返回null

这段代码:

Type.GetType("namespace.a.b.ClassName")
Run Code Online (Sandbox Code Playgroud)

回报null.

我在使用中:

using namespace.a.b;
Run Code Online (Sandbox Code Playgroud)

更新:

类型存在,它在不同的类库中,我需要通过字符串名称来获取它.

c# reflection

198
推荐指数
10
解决办法
16万
查看次数

通用转换功能似乎不适用于Guids

我有以下代码:

public static T ParameterFetchValue<T>(string parameterKey)
{
    Parameter result = null;

    result = ParameterRepository.FetchParameter(parameterKey);

    return (T)Convert.ChangeType(result.CurrentValue, typeof(T), CultureInfo.InvariantCulture);  
}
Run Code Online (Sandbox Code Playgroud)

result.CurrentValue字符串的类型.我希望能够将其转换为Guid,但我一直收到错误:

从System.String到System.Guid的转换无效

这与原始数据类型完美配合.
有没有办法让这个工作非原始数据类型

.net c# generics typeconverter

39
推荐指数
1
解决办法
9935
查看次数

以管理员身份运行:requireAdministrator&ClickOnce +模拟系统时间

我的应用程序使用ClickOnce tehcnology.今天我需要以管理员身份运行它.我修改了清单文件

<requestedExecutionLevel  level="asInvoker" uiAccess="false" />
Run Code Online (Sandbox Code Playgroud)

<requestedExecutionLevel  level="requireAdministrator" uiAccess="false" />
Run Code Online (Sandbox Code Playgroud)

但VS无法编译项目:

错误35 ClickOnce不支持请求执行级别'requireAdministrator'.

我认为不可能立刻使用它们.不是吗?我需要更改系统时间,我可以在应用程序级别执行此操作吗?我可以模仿它,所以应用程序.能做我想做的事.我改变时间+2小时然后放回一秒钟.我有几个dll,他们要求时间.

c# time clickonce winapi administrator

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

自动生成的 AppData/Local 文件夹被“错误”创建

当我运行 .net exe 时,会创建相应的文件夹C:\Users\UserName\AppData\Local\AppName

在此文件夹内,会创建另一个文件夹AppName_Url_ABCXYZ

在此文件夹内,还会为 .net exe 的程序集版本创建另一个文件夹0.2.28.0

谁能解释一下 Windows 如何决定创建二级文件夹AppName_Url_ABCXYZ

当我增加程序集版本并执行单个文件发布并运行生成的 exe 时,我遇到问题,AppName_Url_ABCXYZ创建一个包含新程序集版本文件夹的新文件夹。

这会导致问题,因为它破坏了功能, Properties.Settings.Default.Upgrade()因为要升级的设置不再位于预期目录中

好的:

-AppData
 -Local
  -MyApp
   -MyApp_Url_ABCXYZ
    -0.2.13.0
    -0.2.14.0
    -0.2.15.0
Run Code Online (Sandbox Code Playgroud)

坏的:

-AppData
 -Local
  -MyApp
   -MyApp_Url_ABC1
    -0.2.13.0
   -MyApp_Url_ABC2
    -0.2.14.0
   -MyApp_Url_ABC3
    -0.2.15.0
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

更新:

@Richard Deeming 提供的信息表明 appdata 文件夹的哈希部分是这样生成的:

var uri = "file:///" + fullExePath; //or 'assemblyName.CodeBase' if vshost (you can check the 'FriendlyName')
uri = uri.ToUpperInvariant();

var ms = new MemoryStream();
var bSer = new BinaryFormatter();
bSer.Serialize(ms, uri);
ms.Position …
Run Code Online (Sandbox Code Playgroud)

.net c# windows

8
推荐指数
1
解决办法
1340
查看次数

如何更改.NET应用程序的预定义userconfig目录?

当前,我的应用程序的用户设置存储在此默认目录中:

C:\Users\{User Name}\AppData\Roaming\{Company Name}\{Assembly Name}.vshos_Url_{Hash}\{Assembly Version}
Run Code Online (Sandbox Code Playgroud)

我知道默认Microsoft命名规则的含义,我的问题是:如何在执行时更改defaut文件夹或通过修改appconfig文件?

我的意图是只能处理将应用程序的用户设置保存到的目录,例如,我想将用户设置文件保存在以下目录中:

C:\Users\{User Name}\AppData\Roaming\{Assembly Name}
Run Code Online (Sandbox Code Playgroud)

我知道这是可以实现的,因为我已经看到很多.NET应用程序可以将其userconfig文件存储在自定义漫游文件夹中,该文件夹不遵循Microsoft默认规则以及未处理的哈希和其他令人讨厌的命名规则。

.net c# vb.net user-config settingsprovider

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