Skip to content

Commit 9125915

Browse files
Merge pull request #5 from ShawnLaMountain/main
Changing from .NET Standard 2.1 to .NET Standard 2.0 to support more …
2 parents 0c99b00 + e3f7c02 commit 9125915

9 files changed

Lines changed: 58 additions & 16 deletions

File tree

.github/workflows/CD.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ on:
77
env:
88
TITLE: "Dynamic Thread-Safe Objects"
99
DESCRIPTION: "A combination of generic Dynamic Thread-Safe objects that can be used in all application types."
10-
TAGS: "thunderdesign dynamic threading net"
10+
TAGS: "thunderdesign dynamic visual%2Dstudio c%2Dsharp dotnet%2Dstandard dotnet%2Dframework dotnet%2Dcore cross%2Dplatform pcl%2Dlibrary mono xamarin%2Dforms xamarin%2Dandroid xamarin%2Dios xamarin%2Dmac xamarin%2Duwp unity csharp net dotnet threading bindable binding"
1111
#FILE_NAME: ex: "ThunderDesign.Net-PCL.Dynamic"
1212
FILE_NAME: "${{ github.event.repository.name }}"
1313
#REPOSITORY_NAME: ex: "ThunderDesign.Net-PCL.Dynamic"
@@ -30,10 +30,10 @@ jobs:
3030
- name: Checkout
3131
uses: actions/checkout@v2
3232

33-
- name: Setup .NET 3.0
33+
- name: Setup .NET 2.0
3434
uses: actions/setup-dotnet@v1
3535
with:
36-
dotnet-version: 3.0.x
36+
dotnet-version: 2.0.x
3737

3838
- name: Setup MSBuild
3939
uses: microsoft/setup-msbuild@v1.1

.github/workflows/CI.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,10 +20,10 @@ jobs:
2020
- name: Checkout
2121
uses: actions/checkout@v2
2222

23-
- name: Setup .NET 3.0
23+
- name: Setup .NET 2.0
2424
uses: actions/setup-dotnet@v1
2525
with:
26-
dotnet-version: 3.0.x
26+
dotnet-version: 2.0.x
2727

2828
- name: Setup MSBuild
2929
uses: microsoft/setup-msbuild@v1.1

README.md

Lines changed: 35 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,5 +3,39 @@
33
[![CD](https://github.com/ThunderDesign/ThunderDesign.Net-PCL.Dynamic/actions/workflows/CD.yml/badge.svg)](https://github.com/ThunderDesign/ThunderDesign.Net-PCL.Dynamic/actions/workflows/CD.yml)
44
[![Nuget](https://img.shields.io/nuget/v/ThunderDesign.Net-PCL.Dynamic)](https://www.nuget.org/packages/ThunderDesign.Net-PCL.Dynamic)
55
[![License](https://img.shields.io/github/license/ThunderDesign/ThunderDesign.Net-PCL.Dynamic)](https://github.com/ThunderDesign/ThunderDesign.Net-PCL.Dynamic/blob/main/LICENSE)
6+
[![Net](https://img.shields.io/badge/.net%20standard-2.0-blue)](https://github.com/ThunderDesign/ThunderDesign.Net-PCL.Dynamic/blob/main/README.md)
67

7-
Thread-Safe Objects
8+
A combination of generic Dynamic Thread-Safe objects that can be used in all application types.
9+
10+
----
11+
12+
### Highlights include:
13+
14+
- Collections
15+
- DynamicExpandObjectList
16+
- DynamicPropertyList
17+
- DataObjects
18+
- DynamicExpandObject
19+
- DynamicProperty
20+
- Extentions
21+
- DynamicExpandObjectExtention
22+
23+
----
24+
25+
## Installation
26+
27+
Grab the latest [ThunderDesign.Net-PCL.Dynamic NuGet](https://www.nuget.org/packages/ThunderDesign.Net-PCL.Dynamic) package and install in your solution.
28+
29+
> Install-Package ThunderDesign.Net-PCL.Dynamic
30+
31+
Use the `-version` option to specify an [older version](https://www.nuget.org/packages/ThunderDesign.Net-PCL.Dynamic#versions-tab) to install.
32+
33+
## Examples
34+
35+
*(TIP: Clone repo, open the solution, build it and run sample app.)*
36+
- Xamarin
37+
- [SimpleContacts Example](https://github.com/ThunderDesign/ThunderDesign.Net-PCL.Dynamic/tree/main/samples/Xamarin/SimpleContacts)
38+
39+
## Please Contribute!
40+
41+
This is an open source project that welcomes contributions/suggestions/bug reports from those who use it. If you have any ideas on how to improve the library, please [post an issue here on GitHub](https://github.com/ThunderDesign/ThunderDesign.Net-PCL.Dynamic/issues). Please check out the [How to Contribute](https://github.com/ThunderDesign/ThunderDesign.Net-PCL.Dynamic/blob/main/.github/CONTRIBUTING.md).

src/ThunderDesign.Net-PCL.Dynamic/Collections/DynamicPropertyList.cs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
using System;
2+
using System.Collections.Generic;
23
using ThunderDesign.Net.Dynamic.Interfaces;
34
using ThunderDesign.Net.Threading.Collections;
45

@@ -13,6 +14,11 @@ public class DynamicPropertyList : ObservableDictionaryThreadSafe<string, IDynam
1314
//Hiding base.Add(TKey key, TValue value);
1415
}
1516

17+
void IDictionary<string, IDynamicProperty>.Add(string key, IDynamicProperty value)
18+
{
19+
this.Add(value);
20+
}
21+
1622
public void Add(IDynamicProperty value)
1723
{
1824
base.Add(value.Name, value);

src/ThunderDesign.Net-PCL.Dynamic/DataObjects/DynamicExpandObject.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ namespace ThunderDesign.Net.Dynamic.DataObjects
99
public class DynamicExpandObject : ThreadObject, IDynamicExpandObject
1010
{
1111
#region event handlers
12-
public event PropertyChangedEventHandler? PropertyChanged;
12+
public event PropertyChangedEventHandler PropertyChanged;
1313
#endregion
1414

1515
#region properties

src/ThunderDesign.Net-PCL.Dynamic/DataObjects/DynamicProperty.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ public DynamicProperty(string name, object value) : this(name)
2323
#endregion
2424

2525
#region event handlers
26-
public event PropertyChangedEventHandler? PropertyChanged;
26+
public event PropertyChangedEventHandler PropertyChanged;
2727
#endregion
2828

2929
#region properties
@@ -33,7 +33,7 @@ public string Name
3333
private set;
3434
}
3535

36-
public object? Value
36+
public object Value
3737
{
3838
get { return this.GetProperty(ref _Value, _Locker); }
3939
set { this.SetProperty(ref _Value, value, _Locker, true); }
@@ -48,7 +48,7 @@ public virtual void OnPropertyChanged(string propertyName)
4848
#endregion
4949

5050
#region variables
51-
protected object? _Value = null;
51+
protected object _Value = null;
5252
#endregion
5353
}
5454
}

src/ThunderDesign.Net-PCL.Dynamic/Extentions/DynamicExpandObjectExtention.cs

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,10 +30,13 @@ private static void Parse(IDynamicExpandObject parent, XElement node)
3030
{
3131
IDynamicExpandObjectList<IDynamicExpandObject> dynamicExpandObjectList = new DynamicExpandObjectList<IDynamicExpandObject>();
3232

33-
foreach (var element in node.Elements())
33+
foreach (var elementList in node.Elements())
3434
{
3535
IDynamicExpandObject dynamicExpandObject = (IDynamicExpandObject)Activator.CreateInstance(parent.GetType());
36-
Parse(dynamicExpandObject, element);
36+
foreach (var element in elementList.Elements())
37+
{
38+
Parse(dynamicExpandObject, element);
39+
}
3740
dynamicExpandObjectList.Add(dynamicExpandObject);
3841
}
3942
IDynamicExpandObject parentExpandObject = (IDynamicExpandObject)Activator.CreateInstance(parent.GetType());

src/ThunderDesign.Net-PCL.Dynamic/Interfaces/IDynamicProperty.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ public interface IDynamicProperty : IBindableObject
66
{
77
#region properties
88
string Name { get; }
9-
object? Value { get; set; }
9+
object Value { get; set; }
1010
#endregion
1111
}
1212
}
Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,10 @@
11
<Project Sdk="Microsoft.NET.Sdk">
22
<PropertyGroup>
3-
<TargetFramework>netstandard2.1</TargetFramework>
3+
<TargetFramework>netstandard2.0</TargetFramework>
44
<RootNamespace>ThunderDesign.Net_PCL.Dynamic</RootNamespace>
5-
<Nullable>enable</Nullable>
65
</PropertyGroup>
76

87
<ItemGroup>
9-
<PackageReference Include="ThunderDesign.Net-PCL.Threading" Version="1.0.2" />
8+
<PackageReference Include="ThunderDesign.Net-PCL.Threading" Version="1.0.5" />
109
</ItemGroup>
1110
</Project>

0 commit comments

Comments
 (0)